gpt4 book ai didi

php - 方法 ob_start 和 ob_flush 不起作用,为什么?

转载 作者:可可西里 更新时间:2023-10-31 22:17:55 27 4
gpt4 key购买 nike

我正在使用 ob_start()/ob_flush(),希望在长时间的导入操作中给我一些进展。

这是我正在做的事情的简单概述:

<?php
ob_start ();

echo "Connecting to download Inventory file.<br>";
$conn = ftp_connect($ftp_site) or die("Could not connect");

echo "Logging into site download Inventory file.<br>";
ftp_login($conn,$ftp_username,$ftp_password) or die("Bad login credentials for ". $ftp_site);

echo "Changing directory on download Inventory file.<br>";
ftp_chdir($conn,"INV") or die("could not change directory to INV");

// connection, local, remote, type, resume
$localname = "INV"."_".date("m")."_".date('d').".csv";
echo "Downloading Inventory file to:".$localname."<br>";

ob_flush();
flush();
sleep(5);

if (ftp_get($conn,$localname,"INV.csv",FTP_ASCII))
{
echo "New Inventory File Downloaded<br>";
$datapath = $localname;
ftp_close($conn);
} else {
ftp_close($conn);
die("There was a problem downloading the Inventory file.");
}
ob_flush();
flush();
sleep(5);

$csvfile = fopen($datapath, "r"); // open csv file
$x = 1;
// skip the header line
$line = fgetcsv($csvfile);
$y = (feof($csvfile) ? 2 : 5);
while ((!$debug) ? (!feof($csvfile)) : $x <= $y) {
$x++;
$line = fgetcsv($csvfile);
// do a lot of import stuff here with $line
ob_flush();
flush();
sleep(1);
}

fclose($csvfile); // important: close the file
ob_end_clean();

但是,屏幕上根本没有任何输出。

我知道数据文件正在下载,因为我观察了它所在的目录。

我也知道导入正在进行,这意味着它在 while 循环中,因为我可以监视数据库并且正在插入记录。

关于为什么我没有将输出输出到屏幕的任何想法?

最佳答案

您还需要检查 PHP 设置

一些安装默认为 4096,一些默认为关闭

output_buffering = Off
output_buffering = 4096

同意 George 的观点,但请检查以上设置

关于php - 方法 ob_start 和 ob_flush 不起作用,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837006/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com