1

의 내용 748 개의 URL이 들어있는 배열 ($ x)이 있습니다. 이제 각 페이지에서 특정 부분을 가져 와서 모든 부분을 새 배열에 넣고 싶습니다. 즉, 배열 $ x에 정의 된 다른 URL의 텍스트 748 개를 포함하는 배열입니다.많은 수의 웹 페이지에서 배열 (PHP)

는 여기에 지금까지있어 코드입니다 :

foreach ($x as $row) { 
    $contents = file_get_contents($row); 

    $regex = '/delimiter_start(.*?)delimiter_end/s'; 
    preg_match_all($regex, $contents, $output); 
} 

나는 $ 출력을 위해서 var_dump 경우 나는 끊임없이 내 브라우저에서 중지를 누를 때까지 내용을 반복 유지하는 이상한 배열을 얻는다. 배열은 다음과 같습니다

array(2) { 
[0]=> 
array(1) { 
[0]=> 
string(4786) "string 1. The one I want from the first page."} 

[1]=> 
array(1) { 
[0]=> 
string(4755) "string 1 again"}} 

array(2) { 
[0]=> 
array(1) { 
[0]=> 
string(8223) "string 2. The one I want from the second page."} 

[1]=> 
array(1) { 
[0]=> 
string(8192) "string 2 again"}} 

편집 : 나는 실제로 $ 출력이 내가 찾고 결과를 검색 할 수 있습니다 [0]. 하지만 루프 외부에서 액세스 할 수있는 $ output [0]과 동일한 내용으로 새 배열을 만드는 방법은 무엇입니까?

답변

0

preg_match_all에서 볼 수있는 출력이 표준입니다. 일치하는 내용과 전체 일치하는 내용을 출력 배열에서 받기 때문입니다.

$lines = Array(); 
foreach ($x as $row) { 
$contents = file_get_contents($row); 

$regex = '/delimiter_start(.*?)delimiter_end/s'; 
preg_match_all($regex, $contents, $output); 
    if (is_array($output) && isset($output[0]) && !empty($output[0])){ 
    $lines[] = $output[0]; 
} 
} 
var_dump($lines); 
+0

대단히 감사합니다. –

관련 문제