데모:
<code>$html='<div class="p-img"><a href="url"></a></div><div class="p-img"><img src="xx"></div>'; preg_match_all('/<div class="p-img">(.*?)<\/div>/', $html, $out); var_dump($out); </code>
대상 문자열 $html,
크롤러를 사용하여 인터넷에서 얻은 DOM 구조에는 공백과 줄바꿈이 많이 포함되어 있습니다. 대상 HTML을 일치시키려면 정규식 뒤에 패턴 수정 기호를 추가해야 합니다
<code>preg_match_all('/<div class="p-img">(.*?)<\/div>/is', $html, $out);</code>
/대소문자 무시
/s는 문자열을 한 줄로 취급하고 개행 문자를 일반 문자로 취급합니다.
데모:
<code>$html='<div class="p-img"><a href="url"></a></div><div class="p-img"><img src="xx"></div>'; preg_match_all('/<div class="p-img">(.*?)<\/div>/', $html, $out); var_dump($out); </code>
대상 문자열 $html,
인터넷에서 DOM 구조를 얻으려면 크롤러를 사용하세요. 공백과 줄바꿈이 많이 있습니다. 대상 HTML을 일치시키려면 정규식 뒤에 패턴 수정 기호를 추가해야 합니다.
<code>preg_match_all('/<div class="p-img">(.*?)<\/div>/is', $html, $out);</code>
/대소문자 무시
/s는 문자열을 한 줄로 취급하고 개행 문자를 일반 문자로 취급합니다.
<code>$html='<div class="p-img"><a href=\'url\'></div><div class="p-img"><img src=\'xx\'></div>'; preg_match_all('/<div\sclass="p\-img">(.*?)<\/div>/is', $html, $out); var_dump($out);</code>
출력:
<code>array(2) { [0]=> array(2) { [0]=> string(39) "<div class="p-img"><a href='url'></div>" [1]=> string(39) "<div class="p-img"><img src='xx'></div>" } [1]=> array(2) { [0]=> string(14) "<a href='url'>" [1]=> string(14) "<img src='xx'>" } }</code>
어떻게 말해야 합니까? $html의 /
은 /
이어야 하며 '
은 '
실행이 안 돼요. 문법이나 규칙성에 문제가 있는 건지 아시나요?
답은 $html이 정의된 곳에 있습니다.
-번호를 이스케이프해야 합니다