15.06.2020 17:15

Получение ответа по URL в PHP с помощью cURL

Получение ответа по URL в PHP с помощью cURL

В этой статье я приведу пример того, как получить ответ по URL в PHP с помощью cURL. В качестве ответа может быть HTML, XML, JSON и др. Вы можете получить содержимое сайта для дальнейшего парсинга. Вы также можете узнать, перенаправляет ли сервер вас на другой URL-адрес, и определить, каким будет последний URL-адрес.

function getResponseByUrl($url, $followLocation = false, $maxRedirects = 10, &$lastUrl = '')
{
    // Options
    $curlOptions = [
        CURLOPT_HEADER => false,
        CURLOPT_NOBODY => false,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 10,
        CURLOPT_CONNECTTIMEOUT => 10,
    ];

    if ($followLocation) {
        $curlOptions[CURLOPT_FOLLOWLOCATION] = true;
        $curlOptions[CURLOPT_MAXREDIRS] = $maxRedirects;
    }

    // Initialization
    $ch = curl_init($url);

    // Set options
    curl_setopt_array($ch, $curlOptions);

    // Execute request
    $result = curl_exec($ch);

    // Get last URL
    $lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

    // Close the resource
    curl_close($ch);

    return $result;
}

Давайте проверим получение ответа по URL:

print_r(getResponseByUrl('https://www.google.com'));

Теперь рассмотрим случай с перенаправлением:

print_r(getResponseByUrl('https://maps.google.com'));

Вы должны установить параметр $followLocation = true, чтобы определить последний URL-адрес. Вы также можете указать максимальное количество перенаправлений с помощью параметра $maxRedirects. Давайте определим последний URL-адрес из предыдущего примера:

getResponseByUrl('https://maps.google.com', true, 10, $lastUrl);
print_r($lastUrl);

Другие статьи