Sākumlapa › Forumi › Mājas lapu izstrāde › Web veidošana un problēmas › speciālo simbolu attēlošana izmantojot substr un mb_subst
define(‘ENABLE_UTF8_NOMB’,true);
define(‘ENABLE_UTF8_MB’,false);
function _mb_strlen($s) {
if(ENABLE_UTF8_MB) {
return mb_strlen($s);
}
if(ENABLE_UTF8_NOMB) {
return strlen(utf8_decode($s));
}
return strlen($s);
}
function _mb_substr($s,$b,$l=NULL) {
/* UTF8 ready */
if(ENABLE_UTF8_MB) {
return is_null($l) ? mb_substr($s,$b) : mb_substr($s,$b,$l);
}
/* UTF8 ready */
if(ENABLE_UTF8_NOMB) {
if($b <0 ) {
$b = _mb_strlen($s) + (int) $b;
}
if( is_null($l) || _mb_strlen($s)<($l+$b)) {
$l = ‘*’;
} else {
if($l <0 )
$l = _mb_strlen($s) + (int) $l;
$l = ‘{0,’.preg_quote($l).’}’;
}
preg_match(‘/^.{‘.preg_quote($b).’}(.’.$l.’)/us’, $s, $m);
return ( isset($m[1]) ) ? $m[1] : false;
}
return ( is_null($l) ) ? substr($s,$b) : substr($s,$b,$l);
}
un lietošanas piemērs:
$mainigais = _mb_substr($mainigais, 0, 70);
baigi vienkārši: mb_internal_encoding(“utf8”);
+10
Tādejādi vārdi netiek aprauti pusē, un, ja teksts ir garāks par limitu, var pielikt galā daudzpunkti vai kādu citu simbolu, kā arī nav jāuztraucās par speciālajiem simboliem, nenoslēgtiem tagiem u.tml.