@ 2013-05-08T05:06:34Z <?php
mb_internal_encoding('UTF-8');
$full_string = 'être vivant';
$match = 'vivant'; //) is êtr<strong>e viva</strong>nt
echo Foo::highlightTerm($full_string, $match);
class Foo{
public static function highlightTerm($full_string, $match){
$full_string_ascii = preg_replace_callback('/[\w]+/ui', array('self', 'callbackHighlightTerm'), $full_string);
$match_ascii = preg_replace_callback('/[\w]+/ui', array('self', 'callbackHighlightTerm'), $match);
$start = stripos($full_string_ascii, $match_ascii);
if($start===FALSE){
return $full_string;
}else{
$length = mb_strlen($match);
return
htmlspecialchars( mb_substr($full_string, 0, $start)) .
'<strong>' . htmlspecialchars( mb_substr($full_string, $start, $length) ) . '</strong>' .
htmlspecialchars( mb_substr($full_string, $start+$length) );
}
}
private static function callbackHighlightTerm($matches){
return preg_replace('/[^\w]/i', '', iconv('UTF-8', 'ASCII//TRANSLIT', $matches[0]));
}
}
?>
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.2.0 - 8.2.18 , 8.3.0 - 8.3.6 Deprecated: Use of "self" in callables is deprecated in /in/KTkqf on line 13
Deprecated: Use of "self" in callables is deprecated in /in/KTkqf on line 14
être<strong> vivan</strong>t Output for 5.3.4 - 5.3.29 , 5.5.0 - 5.5.38 , 5.6.0 - 5.6.40 , 7.0.0 - 7.0.33 , 7.1.0 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.31 , 7.4.0 - 7.4.25 , 7.4.27 - 7.4.32 , 8.0.0 - 8.0.12 , 8.0.14 - 8.0.30 , 8.1.0 - 8.1.28 être<strong> vivan</strong>t Output for 7.3.32 - 7.3.33 , 7.4.26 , 7.4.33 , 8.0.13 Fatal error: Uncaught Error: Call to undefined function iconv() in /in/KTkqf:32
Stack trace:
#0 [internal function]: Foo::callbackHighlightTerm(Array)
#1 /in/KTkqf(13): preg_replace_callback('/[\\w]+/ui', Array, '\xC3\xAAtre vivant')
#2 /in/KTkqf(9): Foo::highlightTerm('\xC3\xAAtre vivant', 'vivant')
#3 {main}
thrown in /in/KTkqf on line 32
Process exited with code 255 . Output for 5.4.0 - 5.4.45 Fatal error: Call to undefined function iconv() in /in/KTkqf on line 32
Process exited with code 255 . Output for 5.0.0 - 5.0.5 , 5.1.0 - 5.1.6 , 5.2.0 - 5.2.17 , 5.3.0 - 5.3.3 être v<strong>ivant</strong> Output for 4.4.2 - 4.4.9 Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/KTkqf on line 12
Process exited with code 255 . Output for 4.3.0 - 4.3.1 , 4.3.5 - 4.3.11 , 4.4.0 - 4.4.1 Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/KTkqf on line 12
Process exited with code 255 . Output for 4.3.2 - 4.3.4 Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/KTkqf on line 12
Process exited with code 255 . preferences:dark mode live preview
300.45 ms | 401 KiB | 465 Q