ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Операции ввода-вывода на сетевом уровне. Часть Одиннадцатая.


28-12-2009

10.4. Проект Curl
За проект Curl, целью которого является интерпретация URL и выборка из них данных, отвечает Дениел Стенберг (Daniel Stenberg). Для обеспечения возможности работы с проектом Curl для создаваемых сценариев PHP пользуется библиотекой Curl. Стандартный сеанс подразумевает создание ресурса Curl функцией curl_init, установку параметров с помощью функции curl_setopt и выполнение запроса с помощью curl_exec. Подход, реализованный в ходе работы над проектом Curl, предполагает вместо использования большого количества функций использование небольшого количества функций в совокупности с большим количеством констант, задаваемых с помощью функции curl_setopt.
Подробнее о проекте Curl можно узнать по адресу <http://curl.haxx.se/>.
Недавно в проект Curl был добавлен так называемый мультиинтерфейс. Теперь PHP поддерживает и эти функции, но нужно постоянно помнить об их относительной новизне. 
void curl_close(resource curl)
Функция curl_close освобождает память, занятую ресурсом Curl. integer curl_errno(resource curl)
Функция curl_errno возвращает номер последней ошибки, сгенерированной заданным ресурсом Curl. В табл. 10.9 приведены константы PHP, представляющие коды ошибок, возвращаемые функцией curl_errno.
Операции ввода-вывода на сетевом уровне
Операции ввода-вывода на сетевом уровне
string curl_error(resource curl)
Функция curl_error возвращает описание последней ошибки для заданного ресурса Curl.
boolean curl_exec(resource curl) string curl_exec(resource curl)
Функция curl_exec (листинг 10.22) предназначена для выполнения запроса. В за­висимости от параметра CURLOPT_RETURNTRANSFER функция curl_exec возвращает логическое значение или запрашиваемые данные. 
Листинг 10.22. Функция curl_exec

<?php
if(!($curl = curl_init()))
{
print("Невозможно инициализировать ресурс Curl!"); exit();
}
//Настроить процессор поиска php.net для выполнения запроса post curl_setopt($curl, OJRLOPTJJRL,
,http://www.php.net/search.php'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, OJRLOPT_POSTFIELDS,
'lang=en_US&pattern=Zend API&show=nosource'); // сделать запрос $results = curl_exec($curl); print("<pre>");
print(htmlentities($results)); print("</pre>");
?>

string curl_getinfo(resource curl, integer info)
Функция curl_getinfo (листинг 10.23) применяется для поиска информации о Curl-запросе. В табл. 10.10 приведен перечень констант, используемых в аргументе info.
Операции ввода-вывода на сетевом уровне
Операции ввода-вывода на сетевом уровне
Листинг 10.23. Функция curlgetinfo

<?php
// принять стартовую страницу узла Zend
$curl = curl_init('http://www.zend.com/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($curl);
// получить различную информацию
print("CURLINFO_CONNECT_TIME: " .
curl_getinfo($curl, CURLINFO_CONNECT_TIME) .
'<br>');
print("CURLINFO_CONTENT_LENGTH_DOWNLOAD: " .
curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD) . '<br>');
print("CURLINFO_CONTENT_LENGTH_UPLOAD: " .
curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_UPLOAD) . '<br>'); 
print("CURLINFO_CONTENT_TYPE: " .
curl_getinfo($curl, CURLINFO_CONTENT_TYPE) . '<br>');
print("CURLINFO_EFFECTIVE_URL: " .
curl_getinfo($curl, CURLINFO_EFFECTIVE_URL) .
'<br>'); print("CURLINFO_FILETIME: " .
curl_getinfo($curl, CURLINFO_FILETIME) .
'<br>');
print("CURLINFO_HEADER_SIZE: " .
curl_getinfo($curl, CURLINFO_HEADER_SIZE) . '<br>');
print("CURLINFO_HTTP_CODE: " .
curl_getinfo($curl, CURLINFO_HTTP_CODE) . '<br>');
print("CURLINFO_NAMELOOKUP_TIME: " .
curl_getinfo($curl, CURLINFO_NAMELOOKUP_TIME) . '<br>');
print("CURLINFO_PRETRANSFER_TIME: " .
curl_getinfo($curl, CURLINFO_PRETRANSFER_TIME) . '<br>');
print("CURLINFO_REDIRECT_COUNT: " .
curl_getinfo($curl, CURLINFO_REDIRECT_COUNT) . '<br>');
print("CURLINFO_REDIRECT_TIME: " .
curl_getinfo($curl, CURLINFO_REDIRECT_TIME) . '<br>');
print("CURLINFO_REQUEST_SIZE: " .
curl_getinfo($curl, CURLINFO_REQUEST_SIZE) . '<br>');
print("CURLINFO_SIZE_DOWNLOAD: " .
curl_getinfo($curl, CURLINFO_SIZE_DOWNLOAD) . '<br>');
print("CURLINFO_SIZE_UPLOAD: " .
curl_getinfo($curl, CURLINFO_SIZE_UPLOAD) . '<br>');
print("CURLINFO_SPEED_DOWNLOAD: " .
curl_getinfo($curl, CURLINFO_SPEED_DOWNLOAD) . '<br>');
print("CURLINFO_SPEED_UPLOAD: " .
curl_getinfo($curl, CURLINFO_SPEED_UPLOAD) . '<br>');
print("CURLINFO_SSL_VERIFYRESULT: " .
curl_getinfo($curl, CURLINFO_SSL_VERIFYRESULT) . '<br>');
print("CURLINFO_STARTTRANSFER_TIME: " .
curl_getinfo($curl, CURLINFO_STARTTRANSFER_TIME) . '<br>');
print("CURLINFO_TOTAL_TIME: " .
curl_getinfo($curl, CURLINFO_TOTAL_TIME) . '<br>');
?> 
resource curl_init(string url)
Функция curl_init используется для создания дескриптора ресурса Curl. Необя­зательный аргумент url устанавливает параметр CURLOPT_URL.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Операции ввода-вывода на сетевом уровне. Часть Деcятая. PHP. Операции ввода-вывода на сетевом уровне. Часть Двеннадцатая.