2013-01-18 8 views
0

QueryPath을 사용하여 HTML을 전달하려고합니다. HTML에서 Javascript 변수의 값을 얻고 싶습니다. 이처럼 :PHP/Querypath가 자바 스크립트 변수 값을 얻습니다.

<script type="text/javascript"> 

     var base_url = "http://www.exampleurl.com/"; 
     var room_id = "357"; //I want to get the value of room_id 
     var selected_room_button = ""; 

</script> 

내가 357 입니다 자바 스크립트 변수 *의 room_id *의 값을 얻으려면 어떻게 이것을 달성 할 수 있습니까?

QueryPath를 사용하지 않는 경우에도 이러한 종류의 구문 분석을 수행 할 수있는 다른 HTML 파서가 있습니까?

답변

3

정규 표현식을 사용할 수 있습니다. 이 코드는 예제에서 방 ID를 반환합니다.

<?php 

$html = ' 
<script type="text/javascript"> 
    var base_url = "http://www.exampleurl.com/"; 
    var room_id = "357"; //I want to get the value of room_id 
    var selected_room_button = ""; 
</script>'; 

$pattern = '/var room_id = "(.*)";/'; 
preg_match($pattern, $html, $matches); 
$room_id = $matches[1]; 

그러나 변수가 두 번 정의되었거나 다른 범위에서 정의되었을 수 있으므로 일반적인 해결책은 없습니다.

row_id 옆에 다른 내용을 추출 할 필요가 없다면 HTML 구문 분석기를 사용할 이유가 없습니다. 그것은 단지 것들을 느리게합니다. 또한 HTML 파서가 Javascript 파서가 아닌 것을 기대하십시오! HTML 파서는 문자열로 <script></script> 태그 사이의 구문 분석되지 않은 콘텐츠를 추출하는 데 사용됩니다. row_id를 추출하려면 다시 정규 표현식이 필요합니다.

+0

감사합니다. 나는 이것이 효과가 있다고 생각한다. 다른 HTML-parser-native 메소드가 더 이상 나오지 않는다면, 이것은 필자의 대답이다. –

+0

좋습니다. :) .. – hek2mgl