2. In the expression:$new_length < $length || $entity_open,will $entity_open been checked? I can not image any instance.
all doubts based codes listed below.
function entities_rtrim($string, $length) {
if ( function_exists('mb_language') && mb_language() != 'neutral' )
{
$strlen = 'mb_strlen';
$substr = 'mb_substr';
} else {
$strlen = 'strlen';
$substr = 'substr';
}
if ( strpos($string, '&') === false )
return $substr($string, 0, $length);
$new_string = '';
$new_length = $pos = 0;
$entity_open = false;
while ( $pos < $strlen($string) && ( $new_length < $length || $entity_open ) ) {
$char = $substr($string, $pos, 1);
if ( $char == '&' ) {
$entity_open = true;
} elseif ( $char == ';' && $entity_open ) {
$entity_open = false;
$new_length++;
} elseif ( !$entity_open ) {
$new_length++;
}
$new_string .= $char;
$pos++;
}
return $new_string;
}« Last edit by Dietrich on Tue Aug 07, 2007 8:04 pm. »

