PHP脚本在执行期间执行显示结果

时间:2016-11-07 19:43:11

标签: php apache

当我在网络服务器上从我的浏览器执行PHP脚本时,如何在执行时显示该脚本的结果(代码有很多卷曲,完全处理需要大约30分钟)。我有两个服务器,一个在调用时显示每个“echo”,但在另一个服务器上,它在30分钟后显示所有内容,当脚本完全执行时。两台服务器都运行在apache,php 5.6上 代码:

<?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');
}

1 个答案:

答案 0 :(得分:0)

您可以使用ob_flush()flush()来刷新PHP的输出缓冲区。

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

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