2011-10-29 3 views
-1

두 개의 div 헤더 사이에있는 모든 데이터를 가져오고 싶습니다. 아래 코드가 제대로 작동하지 않을 수도 있습니다.왜이 정규식이 작동하지 않습니까?

preg_match_all('$\<div class\=\"productDescriptionWrapper\"\>(.*?)\<div class\=\"emptyClear\"\>$', $source, $match); 

미리 감사드립니다.

+8

O GOD IT 'S TERRIBLE. 죄송합니다. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Cam

+1

문자열의 시작을 나타내려면 '^'로 시작해야합니다. '$'는 문자열의 끝을 나타내는 데 사용해야합니다. 또한 * 이후의 물음표는 어색한 것 같습니다. – user482594

+0

"좋은 XML 파서가 많을 때 정규 표현식을 사용하여 XML을 처리하는 것은 좋지 않은 생각입니다." – chown

답변

1

Cory, 일반적으로 DOMDocument를 사용하여이 작업을 수행해야합니다. regex를 사용하여 html을 구문 분석하는 것은 많은 숨겨진 어리 석음과 과도한 복제가 포함되어 있기 때문에 좋은 방법으로 간주되지 않습니다.

http://php.net/manual/en/class.domdocument.php