機種依存文字の置き換え。
sjisでの置き換え。
大分逃げた仕上がり。
知らないもん、、、。
/**
* 機種依存文字置換
*
* @access public
* @param string $str 対象文字列
* @param string $chg_str 置換文字列
* @return string 置換結果
*/
function replaceText($str,$chg_str=NULL){
$flag = false;
$rtn = false;
$str2 = NULL;
// 13区 0x8740~0x879F
// NEC-IBM拡張 0xED40~0xEEFC
// IBM拡張 0xFA40~0xFC4B
// 外字 0xF040~F9FC
// Mac機種依存文字 0x8540~0x889E
// Mac外字および縦組用 0xEAA5~0xFCFC
$pattern = "/(?:[\x87][\x40-\x9F]|[\xED-\xEE][\x40-\xFF]|[\xFA-\xFB][\x40-\xFF]|[\xFC][\x40-\x4B]|[\xF0-\xF9][\x40-\xFF]|[\x85-\x88][\x40-\x9E]|[\xEA-\xFC][\xA5-\xFC])/";
for($cnt1=0; $cnt1<mb_strlen($str); $cnt1++){
$bit = mb_substr($str,$cnt1,1);
if(preg_match($pattern,$bit,$matches,PREG_OFFSET_CAPTURE)) $flag = true;
$bit = preg_replace($pattern,$chg_str,$bit);
$str2 .= $bit;
}
if($flag) $rtn = $str2;
return $rtn;
}
