note 49546 added to function.wordwrap
| From: | radaway at osu1 dot php dot net | Date: | Tue, 01 Feb 2005 10:33:42 +0000 |
| Subject: | note 49546 added to function.wordwrap | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-84310@lists.php.net to get a copy of this message | ||
I noticed you guys better wordwrap was erasing some characters so I changed it, namely the line:
substr($str,0,$i-1).$cut.substr($str,$i,$str_len-1);
Hope its of some use.
function even_better_better_wordwrap($str,$cols,$cut) {
$tag_open = '<';
$tag_close = '>';
$count = 0;
$in_tag = 0;
$str_len = strlen($str);
$segment_width = 0;
for ($i=0 ; $i<=$str_len ; $i++){
if ($str[$i] == $tag_open) {
//tamos dentro de uma tag html
$in_tag++;
} elseif ($str[$i] == $tag_close) {
//fechamos uma tag html
if ($in_tag > 0)
$in_tag--;
} else {
if ($in_tag == 0) {
//se nao estamos dentro de uma tag html
$segment_width++;
if (($segment_width > $cols) && ($str[$i] != " ")) {
//se passamos o limite de colunas acrescentamos o $cut no sitio
$str = substr($str,0,$i-1).$cut.substr($str,$i,$str_len-1);
$i += strlen($cut);
$str_len = strlen($str);
$segment_width = 0;
}
}
}
}
return $str;
}
----
Manual Page -- http://www.php.net/manual/en/function.wordwrap.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+49546
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+49546&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+49546&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+49546&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+49546&report=yes&reason=useless
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+49546&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+49546&report=yes
Search -- http://master.php.net/manage/user-notes.php