2013-11-27 3 views
0

PHP에서 preg_match_all을 사용하여 HTML 페이지를 웹 스크랩하고 있습니다. 이것은 내가 긁어 노력하고있어입니다 : preg_match_all, regex 및// 문제가있는 경우

<script> 
    function fsb38(x) { 
     var b=new 
     Array(98,100,97,98,98,98,99,50,51,55,53,50,48,100,57,98,50,100,53,100,97,48,100,52,100,57,97,56,97,51,54,99,56,38,104,52,61,53,98,99,54,102,57,55,49,99,55,101,55,61,101,48,98,55,99,57,102,110,56,57,102,98,111,78,54,102,102,109,114,53,111,54,101,102,48,48,38,54,98,61,116,50,97,99,38,56,101,51,57,49,102,61,100,101,105,106,101,63,101,101,57,48,52,112,104,112,46,115,110,111,105,115,115,105,109); 
     var p=new Array(0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1,0,0,1,1,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1);  
     window.location = c(b,p) + x; 
     return false; 
    } 
    </script> 

보통 preg_match_all('/var b=new(.*)var p=new/is', $output, $ar);가 완벽하게 정상적으로 작동합니다. 그러나 페이지 전체에 걸쳐 여러 번 발생하기 때문에 나에게 일치 항목 1 개만 표시합니다. 내가 긁어 모으기 시작한 곳의 시작 부분에서 마지막 부분 인 var p=new까지 표시됩니다.

나는 이것을 사용하여 시도했다 : preg_match_all('/var b=new(.*)(\n)(\s)var p=new/is', $output, $ar); -하지만 사용할 때 아무것도 반환하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

2

사용이 모든 배열()

preg_match_all('/var.*?=new(.*?)\)\;/is', $output, $ar); 

사용을 얻으려면이 당신은 단지 B = 새 Array()

preg_match_all('/var b=new(.*?)\)\;/is', $output, $ar); 
을 얻으려면