2010-12-05 4 views
1

: PHP를 사용 -P14DT0H0M0SPHP 구문 분석의 iCal 알림 문자열 나는 ​​현재 비슷한에 iCal의 미리 알림 문자열, 구문 분석하고 있어요

를 내가 가진 경우, 그래서 어떻게 문자열의 요소를 분석 할 수 있습니다

<? 
$reminder = "-P14DT0H0M0S" // somehow output to show "-2 weeks" or eve "-14 days" 

      // OR // 

$reminder = "-P0DT3H0M0S" // somehow output to "-3 hours" 

// etc... 

위의 사항에 대한 도움이 될 것입니다. 나는 어디서부터 시작해야 할까?

감사합니다.

답변

1

형식에 익숙하지 않고 거의 확실하게 라이브러리를 사용할 수 있지만 여기서는 간단한 정규식처럼 보입니다.

뭔가 같은 :

$matches = array(); 
if (preg_match('/^-P(\d+)DT(\d+)H(\d+)M(\d+)S$/', $reminder, $matches)) 
{ 
    // matched pattern, elements captured with() will be stored in $matches[1..] 
    $days = $matches[1]; 
    $hours = $matches[2]; 
    $minutes = $matches[3]; 
    $seconds = $matches[4]; 
} 
+0

고맙습니다. 이것이 내가 알아 내려고 시도한 것입니다. – Dodinas

0

구글 캘린더 드롭 할 수 있습니다 시간 부분을 완전히 되돌려 '-P7D'와 같은 것을 돌려 준다. 그래서 나는 비틀어졌다. 여기의 그것을 다루는 regexp.

preg_match('/^-P(\d+)DT?(\d+)?H?(\d+)?M?(\d+)?S?$/', $reminder, $matches);