如何在PHP中为wordwrap()添加唯一的后缀?

时间:2014-06-06 11:15:27

标签: php

我正在尝试将长文本换成140个字符。这并不意味着我不需要140个字符后的文本。我只需要将文本分成140个字符。我第一次尝试chunk_split,但这没有达到我的期望。然后我尝试了wordwrap(),这是有效的。但我的问题是,我想出了如何添加自定义" ..."在包含137个字符的每个包裹的字符串的末尾,用#34; ..."计算最多140个字符。但是,如何为每个包装的字符串添加自定义后缀?喜欢"这是一个字符串(1)","这是第二个字符串(2)"等等而不是" ..."?基本上我想在每个包裹的字符串的末尾代替数字1,2,3等,而不是当前的" ..." (点)。这是我的代码:

<html>
   <form name="longstring" action="longstring.php" method="POST">
      <textarea rows="5" cols="100" name="typehere"></textarea>
      <input type="submit" value ="submit">
   </from>

   <br/>

   <?php
      $longstring = $_POST["typehere"];
      echo wordwrap($longstring,137,"...<br>") ;
    ?>
</html>

4 个答案:

答案 0 :(得分:0)

function lines($str, $len, $index = 0) {
    $end = " ($index)\n";
    return (mb_strlen($str) < $len) ? ($str . $end) : mb_substr($str, 0, $len) . $end . lines(mb_substr($str, $len), $len, ++$index);
}


echo lines('abcdefghijklmnopqrstuv', 4);

上面的代码将输出

abcd (0)
efgh (1)
ijkl (2)
mnop (3)
qrst (4)
uv (5)

答案 1 :(得分:0)

我的想法:

<?php
      $longstring = $_POST["typehere"];
      $wrapped = wordwrap($longstring,137,"<br>");
      $exploded = explode("<br>",$wrapped);
      $i=1;
      foreach($exploded as $x)
      {
        echo $x." (".$i++.") <br>";
      }
?>

通过包装 13 字符生成的输出:

Lorem Ipsum (1)
is simply (2)
dummy text of (3)
the printing (4)
and (5)
typesetting (6)
industry. (7)
Lorem Ipsum (8)
has been the (9) 

...

答案 2 :(得分:0)


$text = "1234567890123456789";
function stspl($str,$len,$index)
{
    $htl="";
    foreach(str_split($str,$len) as $splt)
    {
        $htl.=$splt."($index)\n";
        $index++;
    }
    return $htl;
}
echo  stspl($text,5,1); //here second parameter 5 is the length of chunk that you want... and third parameter is the index from where you want to start means(1) ,(2) 

输出 -

12345(1)
67890(2)
12345(3)
6789(4)

答案 3 :(得分:0)

如果你有很多块,那么你就不能再使用137了,在9块之后,你会因此而产生一大块141个字符:

137 + strlen("(") + strlen(")") + strlen("10") has a length of 141 chars.

这可能有所帮助:

$longstring = "some long string";
$strlen = strlen($longstring);
$a=0;
$b=0;
$c=0;
while($c<$strlen){
  $a++;
  $b=138-strlen($a);
  echo substr($longstring, $c, $b)."(".($a).")<br>";
  $c+=$b;
}