Web
Analytics
Skip to content

Concrete5 на русском языке

Комбинирование CURL и PHP может быть действительно полезным для получения данных с вебсайтов, связанных с API (такими как Google Analitics API) или Яндекс-маркет, или с другими. Иногда может понадобится получить информацию с сайта, защищённую паролем, поэтому в этом посте раскажу как передать имя пользователя и пароль с помощью PHP и CURL.

В следующем примере,  $url это адрес страницы сайта, с которой нужно получить данные и $password пароль для доступа к этой странице:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

Запись "curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);" не особенно нужна, но она означает, что HTML страницы записывается в переменную  $output, а не выводится на странице, как это бывает обычно с помощью "echo"/

Вам также нет необходимости использовать эту строку "$info = curl_getinfo($ch);" но в ней содержится полезная информация о статусе ответа  HTTP и тому подобное. Используя  print_r($info) из примера выше я получаю информацию при тестировании, например, в следующем виде:

Array
(
    [url] => http://www.testing.local/auth/
    [content_type] => text/html;charset=UTF-8
    [http_code] => 200
    [header_size] => 208
    [request_size] => 100
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0.022493
    [namelookup_time] => 0.000279
    [connect_time] => 0.000475
    [pretransfer_time] => 0.000487
    [size_upload] => 0
    [size_download] => 732
    [speed_download] => 32543
    [speed_upload] => 0
    [download_content_length] => 732
    [upload_content_length] => 0
    [starttransfer_time] => 0.022389
    [redirect_time] => 0
)

Получив http_code, вы будете знать было ли соединение с запрашиваемой странице, прежде чем вы начнёте с парсить с неё данные. 


Загрузка беседы