2012-11-19 3 views
3

나는 XML을 통해 다음과 같은 분, 초 단위로 시간을 제공 텍스트 문자열에서 읽을려고하고있다 :PHP를 사용하여 문자열에서 가변 길이의 텍스트를 추출하는 방법은 무엇입니까?

"79분 43초"

을하지만 분을 추출해야합니다.

회의록은 공백 후 단어 "분"내가 관심이 아니에요 초와 1,2,3 또는 4 그림 번호 수 있습니다.

나는 분에 파악 추출 할 수있는 방법 PHP를 사용하는 별도의 문자열?

답변

3

당신은 숫자로 문자열의 선두 자리를 변환 할 (int) 캐스트를 사용할 수 있습니다

$minutes = (int)"79 minutes 43 seconds"; 

이 접근 방식은 숫자로 시작하고이 숫자는 항상 분을 의미 문자열로 제한됩니다. 다른 경우 정규식을 사용하는 것이 좋습니다. 분 번호 앞에 다른 텍스트가있을 수 있습니다 경우

+0

네, 내가 필요로 무엇을했다, 감사합니다! –

1

, 당신은 정규식을 사용하여 값을 추출 할 수 있습니다 :

$matches = array(); 
preg_match("/(\d+) minutes/", $your_input, $matches); 
$num_minutes = (int)$matches[1]; 
+0

빠진 구분 기호가 맞지만 이스케이프에 대해 틀렸어 -'\\ d "는'\\'문자열로 변환됩니다. 왜냐하면'\\'는 * PHP의 * 문자열 이스케이프. PHP regex 엔진은 "\ d"'만으로 생성 된 제어 문자를 받아 들일 수있을 정도로 똑똑하지만 "\\ d"를 ("시도") 행복하게 받아 들일만큼 충분히 똑똑합니다. 리터럴 슬래시와 일치 시키려면 실제로 PHP 문자열을 이스케이프 처리하고 정규 표현식 엔진을 이스케이프 처리하기 위해' "\\\\"'를 사용해야합니다. – Amber

관련 문제