2011-12-28 41 views
0

我该如何在php中编写以下代码?如何在php中创建指定数量的字符后换行符?

如果没有空格的字符数超过75个,请创建换行符。

wordwrap函数似乎也计算空白,所以我不知道我可以使用它。我只想在我的$ description大于75个字符并且没​​有空格时打破。

感谢您的帮助!

+0

你想打破中间词? – 2011-12-28 07:31:32

+0

尝试写出你需要的东西,然后在遇到困难时提问。 – vdbuilder 2011-12-28 07:32:16

+0

如果这些数据以HTML格式显示,那么在UI级别处理它会不会更好?例如:您可以使用word-wrap属性为css并将其设置为“break-word” – dkulkarni 2011-12-28 07:35:30

回答

0

我假设你只想在一个空间上打破,而不是任何人物。

这不是很有效,但它应该工作。

$array = str_split($input); 
$iNumChars = 0; 
$sOutput = ""; 
foreach($array as $char) { 
if($char != " ") $iNumChars++; 
if($iNumChars > 75 && $char == " "){ 
    $sOutput .= "\n".$char; 
    $iNumChars = 0; 
}else{ 
    $sOutput .= $char; 
    } 
} 
+0

为什么第一个'$ iNumChars ++;'? – 2011-12-28 07:36:35

+0

为什么不呢?我必须补充一点。我还要如何保持数字不变? – 2011-12-28 07:39:01

+0

我不遵循你的逻辑。 [检查出来](http://www.ideone.com/bTAp0),并将其与[您的版本](http://www.ideone.com/sGNRI)进行比较(示例文本适用于第1版) 。 – 2011-12-28 07:47:23

-1

查找字符串的长度。

如果strlen的(字符串)> 75

搜索字符串空白(strpos)

如果没有空格发现,那么你可以创建一个换行符

+0

不是一个真正的答案,她想排除计数中的空白,这是你没有考虑到的。 – 2011-12-28 07:39:36

+0

Okk。我纠正了我的自我。首先搜索字符串中的空白位置。如果pos大于75,则在75个字符后创建换行符。 – Shraddha 2011-12-28 07:44:02

0

希望这会工作,尝试:

// $str is your string 
$explode = explode(" ", $str); 

foreach($explode as $key=>$val){ 
    if($key <= '75'){ 
     $join_arr = " " . $val; 

     if($key == '75'){ 
      // Line Break Here 
      $join_arr .= "<br>"; 
     } 

     echo $join_arr; 
    } 
    else{ 
     exit(); 
    } 
} 

只提供76个字符。

+0

我认为这是我需要的。明天我会试一试,让你知道。我一直在努力寻找最后一个小时的解决方案,现在已经过去了我的就寝时间。 :) 谢谢! – Andi 2011-12-28 08:37:32

+0

你的欢迎:) – 2011-12-28 08:50:41

相关问题