CURL CURLOPT_URL заставляет PHP-скрипт запускаться дважды - PullRequest
2 голосов
/ 24 октября 2011

У меня есть скрипт 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

И из моеготестируя, я сузил его до URL-адреса $ download_file.Если я изменю это, скажем, на http://www.google.com,, то это не проблема.

Есть идеи о том, что может быть причиной двойного выхода?Это происходит и в других ситуациях для разных URL.Я действительно думаю, что это что-то на базе сервера, потому что эта же установка отлично работает на других хостах.

Информация о сервере Linux x-mirrors.com 2.6.26-2-openvz-amd64 # 1 SMP вт 25 января 06:04:33 UTC 2011 x86_64 PHP версии 5.2.6-1 + lenny10 быстрый CGI включен

1 Ответ

1 голос
/ 27 марта 2018

У меня была такая же проблема. это из-за файла .htaccess, вероятно. если вы используете

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

. проверь это без них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...