OSDN Git Service

fix: マルチバイトmb_str_replaceをネットからいただいて追加
authoryoneda <epgrec@park.mda.or.jp>
Sat, 13 Mar 2010 14:30:11 +0000 (23:30 +0900)
committeryoneda <epgrec@park.mda.or.jp>
Sat, 13 Mar 2010 14:30:11 +0000 (23:30 +0900)
Reservation.class.php
reclib.php

index ddb24fe..9f87d4c 100755 (executable)
@@ -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") ) {
index 0113ea2..2ca0b9c 100755 (executable)
@@ -21,4 +21,23 @@ function jdialog( $message, $url = "index.php" ) {
          "// -->\n</script>" );
 }
 
+// マルチバイト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