機種依存文字の置き換え。
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; }