ご存知のとおり、PHP に付属の strlen 関数と substr 関数は漢字を処理できないため、代わりに mb_ シリーズの関数を使用します。しかし、mbstring ライブラリがない場合はどうなるでしょうか?これを置き換えるには、自分でコードを作成する必要があります。早速、コードから始めましょう:
/* インターネットより、作者不明 */
if (!function_exists('mb_substr')) {
function mb_substr($str, $start, $len = '', $encoding="UTF-8"){
$limit = strlen($str);
for ($s = 0; $start > 0;--$start) {// 本当のスタートを見つけました
if ($s >= $limit)
休憩;
if ($str[$s]
++$s;
他に{
++$s; // 長さをスキップ
while ($str[$s] >= "x80" && $str[$s]
++$s;
}
}
if ($len == '')
return substr($str, $s);
それ以外
for ($e = $s; $len > 0; --$len) {//本当の終わりを見つけました
if ($e >= $limit)
休憩;
if ($str[$e]
++$e;
他に{
++$e;//長さをスキップします
while ($str[$e] >= "x80" && $str[$e] <= "xBF" && $e < $limit)
++$e;
}
}
return substr($str, $s, $e - $s);
}
}