求一段PHP源码,要能根据字符串的长度自动为其换行
function addstr($str1,$len,$stradd="")
{
$i=0;
$str2="";
if($len%2==1)$len=$len+1;
$len1=strlen($str1);
for($i=0;$i {
$str2.=substr($str1,$len*$i,$len).$stradd;
$str1=substr($str1,$len*$i,$len1-$len*$i);
}
return $str2;
}
$str3= addstr($str,6,"
");
echo $str3;
?>
用PHP模拟wordwrap字符串换行函数,写了一个wrap(),现有两个
把16行 for ($i = $length -1; $i >= 0; $i--) { 改成for ($i = $length -1; $i > 0; $i--) { 就不会出现这种情况为什么会出现这种情况这种情况只会再设置长度太短或者有很长很长的单词才会发生,首先你用判断空格的方法来判断是不是单词的结尾,"Our mission is to change how learning technologies are developed."如果设置长度为3 $string[0]~$string[2]就很有可能发生以下类似情况“ mi”这串字符事实是空格+mi问题就是只有开头有空格,所以正则一直检测到了开头,终于遇到空格了,就执行创建新行,当时这时获取的是substr($string, 0, 0),就是什么都不获取,但是 $breaker还是被好好得加上了所以说就多了一个,结尾也是一样,如果结尾刚刚好只剩下一个空格,自然多了一个如果设置长度较长,有一般几个单词的长度的话,就不用担心正则一直检测到了开头我建议你改成这样for ($i = $length -1; $i > $length-5; $i--) { ,这样的话,如果遇到比较长的单词也不用直接放到下一行,不然的话就太难看了然后这里也可以改成这样$result .= substr($string, 0, $length) ."-". $breaker;这样效果要好一些还可以在前面加上这个,检测开头是不是有多个空格,有就去掉for ($i = 0; $i < $length;="" $i++)="" {="" if="" (!preg_match('/^\s$/',="" $string[$i])){="" $string="substr($string," $i);="" break;="" }="">
php数据自动换行
应该用这样的结构:
$db=mysql_conntect(。);
$sql='select 。.';
$result=mysql_query($sql,$db);
$lines=1;
while ($row=mysql_fetch_array($result)){
echo $row[..];
if ($i % 10=0) echo "\n
";
$i++;
}
mysql_free_result($result);
mysql_close($db);
PHP怎样才能让输出的内容自动换行
//这是一个算法描述,在文件为全英文状态下,可以正常通过。如果是中文的话,算法不变,长度计算和截取函数都要改,中文字符串的操作你可以参考这个
http://www.nq08.com/code/php/2010-04-07/16.html
我的答案
$str_len = strlen($str);
for($i=0; $i$sub_str = substr($str,$i,50);
echo $sub_str."\n
";
}
?>
转载请注明出处51数据库 » phpword长字符串换行