2010-05-31 3 views
0

PHP에서 URL을 주어진 페이지에서 어떻게 모든 자바 스크립트를 잡을까요? 거기에 모든 자바 스크립트 스크립트 태그의 src 또는 그들 내부의 스크립트를 얻을 수있는 좋은 정규 표현식 있나요?PHP를 사용하여 페이지의 모든 자바 스크립트를 찾는 방법은 무엇입니까?

+0

자바 스크립트 코드는 일반적으로 원래 페이지 및 백엔드 없이는 거의 쓸모가 없으므로 일반적으로 페이지에 바인딩됩니다 (일반적인 라이브러리/프레임 워크 제외). 당신은 페이스 북의 JS를 잡아서 페이지의 하단에 채팅 막대를 넣을 수 없습니다. – stagas

+0

jsLint 검사기를 만들고 있는데, js의 구문 오류를 확인하려고합니다. – QuinnBaetz

답변

1

PHP Simple HTML DOM을 사용하여 <script> 태그의 DOM을 트래버스 할 수 있습니다. 인라인 스크립트를 문자열로 직접 가져 와서 외부에서 링크 된 스크립트에 대해 src 속성을 가져 와서 컬 또는 무엇인가로 직접 다운로드 할 수 있습니다. 그것은 약간의 코딩을 필요로 할 것이고, 당신을 위해 자동적으로 그것을 할 수있는 '마법'스크립트가 있는지 나는 모른다.

+2

'javascript :'URIs 및 내장 이벤트 핸들러 속성 (예 : onclick). – Quentin

+0

사이트가 유효한 dom 구조 (대부분의 사이트와 같이)가없는 경우에도 PHP는 간단한 html dom 작업을 수행합니까? – QuinnBaetz

+0

@QuinnBaetz : 대부분의 경우 그렇 겠지. 당신은 그것을 확실하게하려고 노력해야합니다. 그러나 그것을 사용했던 곳에서는 어떤 문제도 발생하지 않았습니다. 또한 사용하기가 매우 쉽습니다. – stagas

0

스크립트 태그에 포함 된 모든 src 속성의 값을 변수 $matches의 배열에 배치해야합니다. 어레이의 형식에 대해 the documentation을 확인하십시오. 배열을 수정할 수있는 또 다른 매개 변수가 있으므로 배열의 형식을 확인하십시오.

preg_match_all('/<script[^>]*src=[\'"]([^\'"])+[\'"]/', $string, $matches); 
+0

regexp로 html을 파싱하는 것은 일반적으로 좋지 않은 생각입니다 ... –