2011-08-17 7 views
0

'이름 시즌 1 에피소드 2'에서 '이름 S01E02'로 어떻게 변경할 수 있습니까? 그렇지만 '이름 시즌 1 에피소드 15'와 같은 10 개 이상의 에피소드가 있다면 변경됩니다, 나는 그렇게하려고 한 :숫자와 단어 바꾸기

<?php 
$trans = array(
    ' season' =>  ' S', 
    ' 1'  =>  ' 01', 
    ' 2'  =>  ' 02', 
    ' 3'  =>  ' 03', 
    ' 4'  =>  ' 04', 
    ' 5'  =>  ' 05', 
    ' 6'  =>  ' 06', 
    ' 7'  =>  ' 07', 
    ' 8'  =>  ' 08', 
    ' 9'  =>  ' 09', 
    ' episode'  =>  ' E' 
); 
$q = strtr($q, $trans); 


$trans = array(
    'S '  =>  'S', 
    ' E '  =>  'E' 
); 
$q = strtr($q, $trans); 
?> 
+1

여기에 어떤 문제가 있는지 잘 모르겠습니다. 너 뭐하려고? 대신에 무슨 일이 일어나고있는거야? – sdleihssirhc

답변

2
$string = 'name season 1 episode 2'; 
if (preg_replace('/(.*?) season (\d+) episode (\d+)/', $string, $matches) { 
    $new_name = sprintf('%s S%02dE%02', $matches[1], $matches[2], $matches[3]); 
} 

당신의 이름은 서식 및 내부 구조와 일치하는 가정 NEW_NAME = '이름 S01E02'을해야한다.

0
$original_string = "some_thing season 1 episode 9"; 
preg_replace("/([^ ]*) season ([\d]) episode ([\d])/", "$1 S0$2E0$3", $original_string); 
관련 문제