From: yoneda Date: Sat, 13 Mar 2010 14:30:11 +0000 (+0900) Subject: fix: マルチバイトmb_str_replaceをネットからいただいて追加 X-Git-Url: http://git.osdn.net/view?p=epgrec%2Fepgrec.git;a=commitdiff_plain;h=c0c26083286f7b8666faba160a995237e578df15 fix: マルチバイトmb_str_replaceをネットからいただいて追加 --- diff --git a/Reservation.class.php b/Reservation.class.php index ddb24fe..9f87d4c 100755 --- a/Reservation.class.php +++ b/Reservation.class.php @@ -200,37 +200,37 @@ class Reservation { $day_of_week = array( "日","月","火","æ°´","木","金","土" ); $filename = $settings->filename_format; - // あると面倒くさそうな文字を全部_に - $fn_title = mb_ereg_replace("[ \./\*:<>\?\\|()\'\"&]","_", trim($title) ); - // %TITLE% - $filename = str_replace("%TITLE%", $fn_title, $filename); + $filename = mb_str_replace("%TITLE%", $fn_title, $filename); // %ST% 開始日時 - $filename = str_replace("%ST%",date("YmdHis", $start_time), $filename ); + $filename = mb_str_replace("%ST%",date("YmdHis", $start_time), $filename ); // %ET% 終了日時 - $filename = str_replace("%ET%",date("YmdHis", $end_time), $filename ); + $filename = mb_str_replace("%ET%",date("YmdHis", $end_time), $filename ); // %TYPE% GR/BS - $filename = str_replace("%TYPE%",$crec->type, $filename ); + $filename = mb_str_replace("%TYPE%",$crec->type, $filename ); // %CH% チャンネル番号 - $filename = str_replace("%CH%","".$crec->channel, $filename ); + $filename = mb_str_replace("%CH%","".$crec->channel, $filename ); // %DOW% 曜日(Sun-Mon) - $filename = str_replace("%DOW%",date("D", $start_time), $filename ); + $filename = mb_str_replace("%DOW%",date("D", $start_time), $filename ); // %DOWJ% 曜日(日-土) - $filename = str_replace("%DOWJ%",$day_of_week[(int)date("w", $start_time)], $filename ); + $filename = mb_str_replace("%DOWJ%",$day_of_week[(int)date("w", $start_time)], $filename ); // %YEAR% 開始年 - $filename = str_replace("%YEAR%",date("Y", $start_time), $filename ); + $filename = mb_str_replace("%YEAR%",date("Y", $start_time), $filename ); // %MONTH% 開始月 - $filename = str_replace("%MONTH%",date("m", $start_time), $filename ); + $filename = mb_str_replace("%MONTH%",date("m", $start_time), $filename ); // %DAY% 開始日 - $filename = str_replace("%DAY%",date("d", $start_time), $filename ); + $filename = mb_str_replace("%DAY%",date("d", $start_time), $filename ); // %HOUR% 開始時 - $filename = str_replace("%HOUR%",date("H", $start_time), $filename ); + $filename = mb_str_replace("%HOUR%",date("H", $start_time), $filename ); // %MIN% 開始分 - $filename = str_replace("%MIN%",date("i", $start_time), $filename ); + $filename = mb_str_replace("%MIN%",date("i", $start_time), $filename ); // %SEC% 開始秒 - $filename = str_replace("%SEC%",date("s", $start_time), $filename ); + $filename = mb_str_replace("%SEC%",date("s", $start_time), $filename ); // %DURATION% 録画時間(秒) - $filename = str_replace("%DURATION%","".$duration, $filename ); + $filename = mb_str_replace("%DURATION%","".$duration, $filename ); + + // あると面倒くさそうな文字を全部_に + $fn_title = mb_ereg_replace("[ \./\*:<>\?\\|()\'\"&]","_", trim($title) ); // 文字コード変換 if( defined("FILESYSTEM_ENCODING") ) { diff --git a/reclib.php b/reclib.php index 0113ea2..2ca0b9c 100755 --- a/reclib.php +++ b/reclib.php @@ -21,4 +21,23 @@ function jdialog( $message, $url = "index.php" ) { "// -->\n" ); } +// マルチバイトstr_replace + +function mb_str_replace($search, $replace, $target, $encoding = "UTF-8" ) { + $notArray = !is_array($target) ? TRUE : FALSE; + $target = $notArray ? array($target) : $target; + $search_len = mb_strlen($search, $encoding); + $replace_len = mb_strlen($replace, $encoding); + + foreach ($target as $i => $tar) { + $offset = mb_strpos($tar, $search); + while ($offset !== FALSE){ + $tar = mb_substr($tar, 0, $offset).$replace.mb_substr($tar, $offset + $search_len); + $offset = mb_strpos($tar, $search, $offset + $replace_len); + } + $target[$i] = $tar; + } + return $notArray ? $target[0] : $target; +} + ?> \ No newline at end of file