PHP Curl ничего не возвращает, без ошибок и без данных - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь написать очень простой скрипт PHP Curl.

Я использовал https://incarnate.github.io/curl-to-php/ для генерации кода PHP

Я ввел curl www.example.com, и полученный код был

// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "www.example.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

Я также добавил (до curl_close ($ ch))

print "<pre>";
print_r(curl_getinfo($ch));

Результат был

Array
(
    [url] => HTTP://www.example.com/
    [content_type] => text/html; charset=UTF-8
    [http_code] => 200
    [header_size] => 338
    [request_size] => 54
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0.172
    [namelookup_time] => 0
    [connect_time] => 0.078
    [pretransfer_time] => 0.078
    [size_upload] => 0
    [size_download] => 1270
    [speed_download] => 7383
    [speed_upload] => 0
    [download_content_length] => 1270
    [upload_content_length] => 0
    [starttransfer_time] => 0.172
    [redirect_time] => 0
    [redirect_url] => 
    [primary_ip] => 93.184.216.34
    [certinfo] => Array
        (
        )

    [primary_port] => 80
    [local_ip] => 192.168.1.10
    [local_port] => 55774
)

Я пытался сделать это на нескольких веб-сайтах, использующих только базовый URL без параметров, и получил похожие результаты: [http_code] => 200 или [http_code] => 400

Что-то не так с моим сервером, сайтом CURL-TO-PHP или я что-то упускаю?

1 Ответ

0 голосов
/ 18 сентября 2018
$result

Содержит все содержимое страницы, которую вы выбрали.

Кроме того, если вы получите HTTP 400, они могут блокировать такие запросы. В этом случае вы можете попытаться отправить UserAgent с curl, что-то вроде этого:

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');

Таким образом вы «подделываете» пользовательский агент, как будто вы просматриваете Chrome или Firefox и т. Д.

Вы можете установить это значение на то, что вы хотите, вы можете искать наиболее распространенные useragents

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