changeset 140:0ded1d3bd448

enable mb_str_replace()
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Sun, 21 Mar 2010 05:45:55 +0900
parents 3303335825a3
children d1681f891462
files Reservation.class.php reclib.php
diffstat 2 files changed, 32 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/Reservation.class.php	Sun Mar 21 05:16:43 2010 +0900
+++ b/Reservation.class.php	Sun Mar 21 05:45:55 2010 +0900
@@ -199,35 +199,33 @@
 
 			$day_of_week = array( "日","月","火","水","木","金","土" );
 			$filename = $settings->filename_format;
-			// あると面倒くさそうな文字を全部_に
-			$fn_title = mb_ereg_replace("[ \./\*:<>\?\\|()\'\"&]","_", trim($title) );
-
+			
 			// %TITLE%
 			$filename = mb_str_replace("%TITLE%", trim($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 = mb_str_replace("%DURATION%","".$duration, $filename );
 			
--- a/reclib.php	Sun Mar 21 05:16:43 2010 +0900
+++ b/reclib.php	Sun Mar 21 05:45:55 2010 +0900
@@ -21,4 +21,23 @@
          "// -->\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