CURL CURLOPT_URL导致php脚本运行两次

时间:2011-10-24 17:25:57

标签: php curl

我的卷曲脚本看起来像这样:

<?php

echo "hello";

$download_file = "http://www.myremotesite.com/api/download.php?autoupdate=1";

$temp_file = tempnam('/tmp','TEMP');

$ch2 = curl_init();

curl_setopt($ch2, CURLOPT_URL,            $download_file);
curl_setopt($ch2, CURLOPT_HEADER,         FALSE);
curl_setopt($ch2, CURLOPT_FAILONERROR,    FALSE);
curl_setopt($ch2, CURLOPT_BINARYTRANSFER, TRUE);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch2, CURLOPT_TIMEOUT,        10000); 

$file = curl_exec($ch2);
curl_close($ch2);

$fp = fopen($temp_file, 'w');
fwrite($fp, $file);
fclose($fp);

?>

问题是执行后页面上的输出如下所示:

hellohello

根据我的测试,我将其缩小到$ download_file网址。如果我将其更改为http://www.google.com,则没有问题。

有什么想法导致这种双倍输出?对于不同的URL,它也会在其他情况下发生。我真的认为这是基于服务器的东西,因为同样的设置在其他主机上运行良好。

服务器信息 Linux x-mirrors.com 2.6.26-2-openvz-amd64#1 SMP Tue Jan 25 06:04:33 UTC 2011 x86_64 PHP版本5.2.6-1 + lenny10 启用快速CGI

1 个答案:

答案 0 :(得分:1)

我有同样的问题。这可能是因为.htaccess文件。如果你使用

   RewriteEngine On  
   RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

。没有它们检查它。