2016-11-07 19 views
0

Webサーバー上のブラウザからPHPスクリプトを実行すると、実行中にそのスクリプトの結果が表示されます(コードには多くのカールがあり、処理には約30分かかります)。 )。私は2つのサーバーを持っており、1つは呼び出されたときにすべての "エコー"を表示しますが、スクリプトが完全に実行された30分後には他のサーバーに表示されます。あなたがob_flush()flush()を使用してPHPの出力バッファをフラッシュすることができPHPスクリプトが実行中に結果を表示する

<?php 
error_reporting('E_ALL'); 
ini_set('error_reporting', 'E_ALL'); 
set_time_limit (2); 

$i=0; 
$handle = fopen("filmyNasze.txt", "r"); 
if ($handle) { 
    while (($line = fgets($handle)) !== false) { 
     $line = explode("##", $line); 
     $nazwafilmu = trim($line[0]); 
     $linkfilmu = trim($line[1]); 
     $linkfilmu = 'http://xxx.pl' . $linkfilmu; 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_URL, $linkfilmu); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, array("Cookie: cda.player=html5")); 
     curl_exec($ch); 
     $result = curl_exec($ch); 
     curl_close($ch); 
     libxml_use_internal_errors(true); 
     $doc2 = new DOMDocument(); 
     $doc2->loadHTML($result); 
     $divid = str_replace('/video/', '', trim($line[1])); 
     foreach($doc2->getElementsByTagName('div') as $div) { 
      if($div->getAttribute('id') == 'mediaplayer' . $divid) { 
       $array = json_decode($div->getAttribute('player_data'), true); 
       //echo $array["video"]["file"] . " ## ";      
      } 
     } 
     echo $nazwafilmu . ' ## ' . trim($line[1]) . ' ## ' . $array["video"]["file"] . '<br />'; 
    } 
    fclose($handle); 
} 
else { 
    die('brak pliku .txt'); 
} 
+0

Prollyが原因ブラウザの不整合に動作しますが、[ 'フラッシュ()'](http://php.net/manual/en/function.flush.php)機能をしようとはしません。 – MonkeyZeus

+0

ここではフラッシュしません – buli

答えて

0

:両方のサーバーは、Apache、PHP 5.6 コードで実行されています。

http://php.net/manual/en/function.flush.php

<?php 
    ob_start(); 
    echo 'Something'; 
    ob_flush(); 
    flush(); 
    ob_end_flush(); 
+0

私はすでにそれらを使用していて、動作しません。スクリプトは1台のサーバーで正常に動作しますが、2台目では正常に動作しません。ファイルの先頭にHTMLコードがある場合でも( テスト)、それにPHPコードでは「テスト」は表示されません。両方のサーバーはApacheを実行しているので、設定やPHP設定と関係する問題があると思っていました。 – buli

+0

@ monster1777ページの始めに静的HTMLを印刷していない場合でも、おそらくどこかに構文エラーがあります。あなたのApacheログを見てみてください。 – LifeOfRPi

+0

Apacheログにはエラーはありません。私は非常に同じスクリプトが他のウェブサーバ上で動作すると言ったように、フラッシュメソッドは動作しません。しかし、私が意図的にスクリプトでエラーを出すと、それはApacheのログには表示されず、ブラウザにも表示されません(エラーが報告されています)。まあ、私は私のVPSプロバイダに連絡しなければならないと思う – buli

関連する問題