マルチバイトシンボルの1つが最初に出現した位置を返すことができるPHPの標準関数はありますか?
全体のタスクは次のとおりです。マルチバイト文字列とこの文字列内の位置があり、記号 (区切り文字) の最初の出現箇所を見つける必要があります。次の関数を書きましたが、残念ながら動作が非常に遅いです。
$delimiters = array(
"\r", "\n", "\t", ".", ";", "!", "?"
);
function get_cit_end($str, $end) {
global $delimiters;
if( $end >= mb_strlen($str) )
return mb_strlen($str) - 1;
$c = mb_substr($str, $end, 1);
while( $end < mb_strlen($str) ) {
if( in_array($c, $delimiters) )
break;
$end++;
$c = mb_substr($str, $end, 1);
}
return $end;
}