我正在尝试将长文本换成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>
答案 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;
}