Ben bir InnoDB tablo (utf8_spanish_ci
harmanlama) verileri elde ve bir HTML belgesi (UTF-8
charset) görüntüler bir arama özelliğe sahip. Kullanıcı türleri bir alt ve ilk alt olay vurgulanır maçları, örneğin bir listesini alır:
Matches for "AL":
Álava
<strong>Al</strong>bacete
<strong>Al</strong>mería
Ciudad Re<strong>al</strong>
Málaga
Eğer örnekte de görebileceğiniz gibi, arama (MySQL otomatik olarak ilgilenir) durumda ve aksan farklılıkları yok sayar. Ancak, maçları hightlight için kullanıyorum kod ikincisi yapmak için başarısız olur:
<?php
private static function highlightTerm($full_string, $match){
$start = mb_stripos($full_string, $match);
$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) );
}
?>
Olası tüm varyasyonları sabit kodlama anlamına gelmez bu düzeltmek için mantıklı bir yolu var mı?
Update: Sistem özellikleri PHP/5.2.14 ve MySQL/5.1.48 vardır