note 54281 added to function.substr

From: Date: Wed, 29 Jun 2005 15:07:36 +0000
Subject: note 54281 added to function.substr
Groups: php.notes 
Request: Send a blank email to php-notes+get-91136@lists.php.net to get a copy of this message
I needed to cut a string after x chars at a html converted utf-8 text (for example Japanese text like &#23344;&#35632;&#24368;&#33072;&#27440;&#32591;). The problem was, the different length of the signs, so I wrote the following function to handle that. Perhaps it helps. <?php function html_cutstr ($str, $len) { if (!preg_match('/\&#[0-9]*;.*/i', $str)) { $rVal = strlen($str, $len); break; } $chars = 0; $start = 0; for($i=0; $i < strlen($str); $i++) { if ($chars >= $len) break; $str_tmp = substr($str, $start, $i-$start); if (preg_match('/\&#[0-9]*;.*/i', $str_tmp)) { $chars++; $start = $i; } } $rVal = substr($str, 0, $start); if (strlen($str) > $start) $rVal .= " ..."; return $rVal; } ?> ---- Manual Page -- http://www.php.net/manual/en/function.substr.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+54281 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+54281&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+54281&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+54281&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+54281&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+54281&report=yes&reason=non-english Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+54281&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+54281&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#91136) next »