curl_exec не возвращает никаких данных - PullRequest
1 голос
/ 05 мая 2011

У меня есть такой URL http://www.url.com/cakephp/controller/action/param:1, который создает HTML-страницу.

Внутри php-файла у меня есть:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 
    "http://www.url.com/cakephp/controller/action/param:1" ); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); 
$results=curl_exec($ch); 
echo $results." <br />";

Этот кусок кода ничего не пишет, кроме <br />?

Если я использую другой сайт, например www.google.com, он будет загружен и будет отображаться правильно. В чем моя проблема?

Ответы [ 3 ]

1 голос
/ 05 мая 2011

Проблема в том, что сайт ничего не выдает, если вы не следите за местоположением (похоже, оно может перенаправить, если это торт) и если вы не принимаете куки.

$cookie = tempnam ("/tmp", "CURLCOOKIE");

$ch = curl_init();
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookie );
curl_setopt($ch, CURLOPT_URL, "http://www.trofeocaressa.it/cakephp/matches/showMatchesBySeasonId/season_id:1" ); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); 
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
$results=curl_exec($ch); 
echo $results." <br />";

Это должно вернуть результаты. Для будущих ссылок Curl Manual в нем есть список того, что вы можете передать, что он делает и т. Д. Попробуйте некоторые основные элементы, такие как файлы cookie, рефереры, пользовательские агенты и т. Д.

1 голос
/ 05 мая 2011

Скорее всего, CURL как-то не работает. Попробуйте это:

$results = curl_exec($ch);
if ($results === FALSE) {
    die(curl_error($ch));
}
echo $results . "<br />";

curl возвращает false в случае сбоя, поэтому вам нужно проверить его.

0 голосов
/ 11 мая 2011

Может быть, вам следует добавить отчет об ошибках, как сказал Марк, и закрыть обработчик

(curl_close ($ ч);)

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