CURL CURLOPT_URL вызывает повторный запуск php-скрипта

#php #curl

#php #curl

Вопрос:

У меня есть скрипт 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. Я чувствую, что нам здесь не хватает кода. Где $ch1 ?

2. Ничто в этом скрипте не заставит его запускаться дважды, если только он не был запрошен дважды.

3. @ceejayoz это было там, когда я проверял, можно ли сузить проблему до двух запросов CURL, выполняемых в одном скрипте… вы знаете только теоретическое тестирование. $ ch2 — это то, что осталось к тому времени, когда я выяснил, что заставляло его дважды печатать hello. Привет, Марк, я согласен. Тем не менее….

4. как вы выполняете скрипт?

5. Эй, Филл, на данный момент этот приведенный выше скрипт является кодом для test.php , который я запускаю в браузере.

Ответ №1:

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

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

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