IIS 7.5上的PHP通过浏览器缓慢但快速通过命令行

时间:2016-04-04 13:17:31

标签: php iis iis-7.5 php-5.6

我有一个php脚本,它有一个for循环,可以从AWS下载一些pdf / jpg文件。

我目前正在测试它,它正在下载180个文件,总共大约64MB。

当我使用http://localhost/script.php通过浏览器调用脚本时,脚本大约需要10-12分钟才能完成。

如果我通过运行c:\ Program Files(x86)\ PHP \ v5.6 \ php-cgi.exe -f" c:\ WebApps \ scripts.php&#从命令提示符调用相同的脚本34;完整的脚本在大约5秒内运行并正确下载所有文件。

有人知道可能导致这种巨大差异的原因吗?

我在Windows 2008 R2上的IIS 7.5上使用PHP 5.6。

1 个答案:

答案 0 :(得分:0)

我最后通过更改用于下载文件的方法来解决问题。我最初使用的是file_put_contents,然后切换到curl。

我正在使用以下功能:

function retrieveandsave($url, $pathtosave, $filename){
if (!file_exists($pathtosave)) {
    mkdir($pathtosave, 0777, true);
}

$fp = fopen ($pathtosave . $filename, 'w+');
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_BINARYTRANSFER, true );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );

curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt( $ch, CURLOPT_FILE, $fp );
curl_exec( $ch );
curl_close( $ch );
fclose( $fp );

}