#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]
. проверьте это без них.