예, 알고 있습니다. 정규 표현식으로 HTML을 구문 분석하는 것은 매우 나쁩니다. 하지만 html 페이지에서 모든 link
및 style
요소를 추출해야하는 기존 코드로 작업하고 있습니다. 내가 그것을 변경하고 대신 dom
확장을 사용하지만, 정규 표현식 후에는 preg_match_all
이 일치하는 결과를 반환하는 거대한 코드 블록이 있습니다.정규식을 통한 스타일 시트 추출
$pattern = '/<(link|style)(?=.+?(?:type="(text\/css)"|>))(?=.+?(?:media="(.*?)"|>))(?=.+?(?:href="(.*?)"|>))(?=.+?(?:rel="(.*?)"|>))[^>]+?\2[^>]+?(?:\/>|<\/style>)\s*/is';
preg_match_all($pattern, $htmlContent, $cssTags);
를하지만 작품을 나던 :
스크립트는이 정규식을 사용하고 있습니다. 일치하는 요소가 없습니다. 불행히도 나는 정규식을 정말 빨아 먹는다. 누군가 나를 도울 수 있다면 좋을 것이다.
모든 일치가 사용됩니다 – galambalazs
@galambalazs 네, 제가 알기로는 이것이 사실입니다. – Max
* 거대한 코드 블록 *은 리팩토링을위한 좋은 후보자처럼 들립니다. 적절한 DOM 솔루션을 위해 그것을 버리십시오. – Gordon