1. Основные шаги запроса скручивания:
(1) Инициализация
(2) Установить параметры, включая URL
(3) Выполнить и получить контент документа HTML
(4) Отпустите ручку сгиба
Кода -копия выглядит следующим образом:
<? Php
// 1. Инициализация
$ ch = curl_init ();
// 2. Установить параметры, включая URL
curl_setopt ($ ch, curlopt_url, "http://www.cnblogs.com/it-cen/");
// возвращать информацию, полученную curl_exec () в виде потока файла, а не напрямую ее
curl_setopt ($ ch, curlopt_returntransfer, 1);
// При запуске информация о файле заголовка будет выводиться в виде потока данных
curl_setopt ($ ch, curlopt_header, 1);
// 3. Выполнить и получить контент документа HTML
curl_exec ($ ch);
// 4. Отпустите ручку
curl_close ($ ch);
Echo $ CH;
?>
Примечание. Второй шаг является наиболее важным, то есть функцией curl_setopt ()
Мы можем добавить оператор для проверки ошибок. Здесь мы должны обратить внимание на использование «=== false», который должен различать пустой выход и логическое значение false
Кода -копия выглядит следующим образом:
$ output = curl_exec ($ ch);
if ($ output === false) {
Echo "ошибка сгиба:". curl_error ($ ch);
}
Функция curl_getinfo () возвращает информацию об этом запросе после выполнения Curl, что полезно для отладки и устранения неполадок:
Кода -копия выглядит следующим образом:
curl_exec ($ ch);
$ info = curl_getinfo ($ ch);
echo '<pre>';
print_r ($ info);
echo '</pre>';
Возвращаемые данные
Кода -копия выглядит следующим образом:
Множество
(
[url] => http://www.cnblogs.com/it-cen/
[content_type] => text/html; charset = utf-8
[http_code] => 200
[header_size] => 312
[request_size] => 61
[fileTime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0,172
[nameLoucup_time] => 0,016
[connect_time] => 0,063
[pretransfer_time] => 0,063
[size_upload] => 0
[size_download] => 14658 <span style = "color: #ff0000;"> // Запрашиваемый размер данных </span>
[speed_download] => 85220
[speed_upload] => 0
[Download_content_length] => 14658
[upload_content_length] => 0
[startTransfer_time] => 0,125
[redirect_time] => 0
[certinfo] => массив
(
)
[redirect_url] =>
)
2. Эта информация очень полезна при отладке . Например, когда ползание скручивания, данные ползания могут часто встречаться по сетевым причинам, и мы можем рассчитать размеры файлов с помощью полученных данных, а затем сравнить их с полученными данными. Если размеры равны, определяется, что загрузка верна, иначе мы сделаем повторные попытки.
Давайте посмотрим на пример ползающих изображений:
Кода -копия выглядит следующим образом:
<? Php
Header ("Content-Type: Image/PNG");
// 1. Инициализация
$ ch = curl_init ();
// 2. Установить параметры, включая URL
curl_setopt ($ ch, curlopt_url, "http://img04.taobaocdn.com/tfscom/tb1omathxxxxajxvxxxxbfxxx.png");
curl_setopt ($ ch, curlopt_returntransfer, 1);
curl_setopt ($ ch, curlopt_header, 1);
// 3. Выполнить и получить контент
$ res = curl_exec ($ ch);
// получить информацию
$ info = curl_getinfo ($ ch);
// 4. Выпустить ресурсы
curl_close ($ ch);
file_put_contents ("d: /aa.png", $ res);
$ size = filesize ("d: /aa.png");
if ($ size! = $ info ['size_download']) {
Echo "Загруженные данные неполны, пожалуйста, загрузите его еще раз";
} еще {
Echo "Загрузить данные за полным";
}
?>
3. Отправить данные, используя метод post в curl
Кода -копия выглядит следующим образом:
<? Php
$ ch = curl_init ();
$ data = array ('name' => 'kelly', 'age' => 27, 'sex' => 1);
curl_setopt ($ ch, curlopt_url, "http: //localhost.post.php");
curl_setopt ($ ch, curlopt_returntransfer, 1);
// установить как пост
curl_setopt ($ ch, curlopt_post, 1);
// Добавить переменную Post
curl_setopt ($ ch, curlopt_postfields, $ data);
$ res = curl_exec ($ ch);
curl_close ($ ch);
Echo $ res;
?>
Этот метод может имитировать сообщения, или вы можете сидеть на водопое, и идеи одинаковы
4. Загрузить файлы с curl
Кода -копия выглядит следующим образом:
<? Php
// запрос на загруженные данные
$ data = array ('name' => 'beauty', "upload" => "@a.zip");
$ ch = curl_init ();
curl_setopt ($ ch, curlopt_url, "http://127.0.0.1/socket/upload_file.php");
curl_setopt ($ ch, curlopt_returntransfer, 1);
curl_setopt ($ ch, curlopt_post, 1);
curl_setopt ($ ch, curlopt_postfields, $ data);
$ res = curl_exec ($ ch);
curl_close ($ ch);
Echo $ res;
?>
Примечание. При отправке файла префикс @ перед именем файла и используйте полный путь
5. Пункт настройки сгибания
На самом деле, Curl имеет много вариантов конфигурации, и эти варианты являются душой Curl. Устанавливая его через setoPt (), следующее обобщает несколько общих и важных элементов конфигурации. Я надеюсь, что это поможет читателям при использовании Curl в будущем:
Curlopt_autoreferer: при перенаправлении в соответствии с местоположением:, реферат: информация в заголовке автоматически устанавливается.
Curlopt_cookiesession: при включении, Curl будет плотно передать SessionCookie, игнорируя другие файлы cookie
Curlopt_header: вывод информации о файле заголовка в виде потока данных
Curlopt_infilesize: установите размер загруженного файла, в байтах
Curlopt_maxconnects: максимальное количество разрешенных соединений
Curlopt_maxredirs: укажите максимальное количество http redirects
Curlopt_cookie: установите содержание "cookie:" часть HTTP -запроса. Многочисленные файлы cookie сопровождаются полуколоном, а место добавляется в полуколон.
Curlopt_postfields: все данные отправляются с использованием операции «post» в протоколе HTTP для отправки файла для отправки, а имя файла префиксируется префиксом @, и используется полный путь.
.........
Для получения дополнительных элементов конфигурации, пожалуйста, обратитесь к руководству PHP
Curl очень мощный, это общая библиотека, не уникальная для PHP.
Я надеюсь, что читатели смогут что -то получить, изучая несколько классических примеров Curl в этом сообщении в блоге.