2016-01-29 8 views
0

Я пытаюсь открыть URL-адрес с помощью curl_init, но не получил успеха, чтобы получить правильный ответ. Из-за соображений безопасности я не могу разделить точный URL-адрес со всеми вами.curl_init включен, но не работает

Ниже мой код

$ch = curl_init("Site URL"); 
print_r($ch); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POST, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
$response = curl_exec($ch); 

echo "Below is Responce <br/>"; 
echo $response; 
print_r($response); 

Ниже приведен результат

Resource id #2Below is Responce 

Выход не бросать какие-либо ошибки, даже если я использовал error_reporting (1) и сообщить об ошибке включена в моей установке PHP веб-хостинг

Я также проверил журналы ошибок, но ничего. Не могли бы вы помочь мне найти причину. Над кодом работает с разных серверов, но не с моего фактического производственного сервера. Пожалуйста, помогите мне найти причину.

+0

Возможно, вы забыли CURLOPT_SSL_VERIFYHOST в false – Sam

+0

Если он работает на некоторых компьютерах, а не на вашем, это, вероятно, проблема настройки. У меня была аналогичная проблема, когда я не получал никаких конкретных ошибок для решения проблем, но решение для этого - использовать VERBOSE для получения ошибок и проблем. Этот поток помог мне в этом: http://stackoverflow.com/questions/3757071/php-debugging-curl – Martin

+0

Возможно, curl отключен в вашем php.ini Вы пытаетесь выполнить этот сценарий локально или на удаленном хосте? – Math

ответ

2

Вот рабочий код:

<?php 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "http://xyz.curlinittest.php"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 
    $data = curl_exec($ch); 
    echo $data; 
    curl_close($ch); 
?> 

Вывод: Hello World

Ваш сервер третьей стороной отвергает запросы на основе агента пользователя. Установите curl, чтобы действовать так, как если бы это был firefox и .. tadaaa

+0

Спасибо за ваш код. Ниже представлен идентификатор ресурса №1. Есть ошибка!. Я использовал этот URL для тестирования http://rosebi.com/curlinittest.php –

+0

На самом деле нам нужно использовать сторонние службы, которые размещаются на некоторых других серверах. В своем коде укажите curl_init(). На выходе у них есть успех и сбой. Раньше наш код работал до 26 января 2016 года. Теперь я не знаю, почему он перестает работать. Также время выполнения рабочего кода составляет долю секунд. Теперь тот же скрипт занимает от 15 до 40 секунд –

+0

В случае успеха скрипт запускает SMS :-(. Теперь мне нужно найти обходной путь. –

0

Так что мой код правильный, поэтому не нужно предоставлять разрешение для него. На самом деле я поднял TKT с моим хостинг-провайдером. Согласно сообщению с провайдером хостинга, они подтверждают, что это проблема сервера из-за блокировки порта 80. Надеюсь, это поможет другим. Таким образом, блокирование портов также является проблемой, если ваш Curl_init не работает.

Смежные вопросы