2012-06-13 2 views
1

PHP를 사용하여 CDATA 태그로 묶인 문자열을 어떻게 추출 할 수 있습니까? 예를 들어 나는 정규식을 사용하여어떻게 정규식을 사용하여 CDATA로 묶인 문자열 부분을 추출 할 수 있습니까?

$str = "<![CDATA[this is my text]]>"; 

가 어떻게 문자열을 추출 할 수 있습니다 "이 내 텍스트는"이? /<!\[CDATA\[(.*?)\]\]>/ : : 첫 번째 ]]>가 발생 될 때까지

$str = "<![CDATA[this is my text]]>"; 

$matches = array(); 
preg_match('/<!\[CDATA\[(.*?)\]\]>/', $str, $matches); 
echo $matches[1]; // this is my text 

정규식은 모든 문자 다음에 <![CDATA[을 찾습니다

답변

6

는이 정규식을 사용할 수 있습니다. 당신의 캐릭터는 항상 ]]><![CDATA[로 시작하고 끝나는 경우

+3

왜'정기적으로 사용하지 (. *?) '중간 부분에서? – zerkms

+0

@zerkms 그래, 그 하하를 깨달았다. 나는 최근에 non-greedy 한정판을 사용하지 않고 gree가없는 엔진에서 많은 정규식을 수행 해왔다. – Paulpro

2

사용할 수 SUBSTR()

$str = "<![CDATA[this is my text]]>"; 
$output = substr($str,9,strlen($str)-12); 
echo $output; 
관련 문제