2012-10-08 6 views
1

file_get_contents('http://remote_site.com/page.html')을 사용하여 웹 사이트의 데이터를 스크랩하는 PHP 스크립트가 있습니다. 내가 겪고있는 유일한 문제는 이후에만 데이터를 인쇄한다는 것입니다. 모든 데이터는 긁힌 후 처리됩니다. 방법이 있습니까 print 또는 echo 스크립트로 데이터를 스크랩입니까?PHP로 긁어서 데이터를 표시합니다.

+0

은 매뉴얼에서 [flush()] (http://php.net/manual/en/function.flush.php)를보십시오. 그리고 허가없이 다 써서는 안됩니다. –

+0

어떻게 지금 페이지를 폐기하고 있습니까? '큐 '? 'file_get_contents'? 우리에게 몇 가지 코드를 보여주세요. –

+0

Dagon에게 flush() 감사합니다. 나는 file_get_contents @Ben D를 사용하여 스크랩하고있다. – user1050982

답변

-2

당신은 내가 당신이 f - 명령을 사용 file_get_contents를 사용하여 전환 할 필요가 있다고 생각 원격 파일을 읽고로 버퍼를 작업 (및 플러싱)을 받으려면

<?php 
print '<pre>'.print_r($data, 1).'</pre>'; 
0

시도 (fopen, fgets 등)을 처리하려면/flush 코드를 처리해야합니다. file_get_contents() does not support the offset parameter for remote files이므로 결과를 처리하기 전에 파일을 완전히 읽을 때까지 기다려야합니다.

당신은 allow_url_fopen은 php.ini 파일에 설정되어 있는지 확인해야합니다,하지만 당신은 (the documentation에서 수정) 같은 것을 쓸 수 있어야 :

$file = fopen ("http://www.example.com/", "r"); 
if (!$file) { 
    echo "<p>Unable to open remote file.\n"; 
    exit; 
} 
ob_start(); 
while (!feof ($file)) { 
    $line = fgets ($file, 1024); 
    $buffer = $line;//you can manipulate what goes to the buffer here 
    echo $buffer; 
    ob_flush(); 
    flush(); 
} 
fclose($file); 

당신은 놀러해야 할 수도 있습니다 이것으로, 나는 그것을 테스트하지 않았지만, 나는 이것이 당신이 취하기를 원하는 접근이라고 생각합니다.

관련 문제