<?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){
/**/var_dump(preg_replace('/[^\w]/i', '', iconv('UTF-8', 'ASCII//TRANSLIT', $matches[0]));
return preg_replace('/[^\w]/i', '', iconv('UTF-8', 'ASCII//TRANSLIT', $matches[0]));
}
}
?>
- Output for 5.3.0 - 5.3.24, 5.4.0 - 5.4.14
- Parse error: syntax error, unexpected ';' in /in/eOSVi on line 32
Process exited with code 255.
preferences:
184.35 ms | 1399 KiB | 47 Q