句号后分页符的 PHP 代码接近 100 个单词



我有一个测试区域,它是来自数据库的动态文本可能有数千个单词。我希望它打破并制作一个段落,每个段落的句号接近 100(任何长度(字。我能够在 100 个单词后休息,但不能用句号休息。为了在 100(任何长度(单词后中断,我使用了以下函数。

function TrimString($String, $Length)
{
    if(strlen($String) > $Length)
    {
        $Temp[0] = substr($String, 0, $Length);
        $Temp[1] = substr($String, $Length);
        $SpacePos = strpos($Temp[1], ' ');
        if($SpacePos !== FALSE)
        {
            return $Temp[0].substr($Temp[1], 0, $SpacePos);
        }
    }
    return $String;
}

例:-

function TrimString($String, $Length){
    if(strlen($String)<=$Length){
        $stringValue=$String;
    } else {
        $stringValue=substr($String,0,$Length) . '.';
    }
    return $stringValue;
}
$m=50;
$a="I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. ";
$data=TrimString($a,$m);
echo $data;

它为我提供了答案

I am a boy. I am a boy. I am a boy. I am a boy. I .

但我需要答案

I am a boy. I am a boy. I am a boy. I am a boy.

因此,您能否帮助我找到接近该函数提供的长度的句号并中断段落。

在此处添加句号(.),例如

 return $Temp[0].substr($Temp[1], 0, $SpacePos).".";

更新 2 :

<?php
function TrimString($String, $Length){
    if(strlen($String)<=$Length){
        $stringValue=$String;
    } else {
        $new_l = strpos ($String , ".", $Length);
        $Length = $new_l+1;
        $stringValue=substr($String,0,$Length);
    }
    return $stringValue;
}
$m=50;
$a="I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. I am a boy. ";
$data=TrimString($a,$m);
echo $data;
?>

输出:

I am a boy. I am a boy. I am a boy. I am a boy. I am a boy.
function TrimString($String, $Length){
 if(strlen($String)<=$Length){ 
  $stringValue=$String; 
 } else { 
  $stringValue=substr($String,0,$Length) . '.'; 
 }
 return $stringValue;
}
you are looking like this:
function TrimString($String, $Length){
 if(strlen($String)<=$Length){ 
  $stringValue=$String; 
 } else { 
  $stringValues=substr($String,0,$Length) . '.'; 
  $lengths=strrpos($stringValues,"."); 
  $stringValue=substr($stringValus,0,$lengths).".";
 }
 return $stringValue;
}

相关内容

最新更新