$str = 'ぐボピ.png';
$strs = mb_str_split($str);
$strs = array_reverse($strs);
$nextkey = -1;
foreach ($strs as $key => $str) { //かな true
if(preg_match("/^[ぁ-ん]+$/u",$str)){
$kana = true;
}else{
$kana = false;
}
if(preg_match("/゙|゚/",$str)){ //濁点なら保存
$dakten = $str;
$nextkey = ++$key;
continue;
}
if($key == $nextkey){ //濁点なら次の文字の後ろに連結
$str .= $dakten;
}
$str = dakten_replace($str); //置換 濁点も一文字になってる
if( $kana ) { // 元が "かな" ならかなに戻す
$str = mb_convert_kana($str, 'c', 'UTF-8');
}
$newstrs[] = $str ;
}
$strs = array_reverse($newstrs);
$str = implode('',$strs);
var_dump($str);
function dakten_replace ($str){
$str = str_replace('゙','゛' ,$str); //全角濁点を半角に
$str = str_replace('゚','゚' ,$str);
$str = mb_convert_kana($str, 'hkV', 'UTF-8');
$str = mb_convert_kana($str, 'HV', 'UTF-8');
$str = mb_convert_kana($str, 'C', 'UTF-8');
return $str;
}
string(13) “ぐボピ.png”
$str = ‘ぐボピ.png’;
比較しても見た目ではわからない。
濁点はひらがなでもカタカナでもないが、かなとカタカナは等しい