Best-club - портал хорошего настроения!
→◊ Библиотека ◊←
Меню сайта
  • Драмы
  • Ужасы
  • Фэнтези
  • Боевики
  • Мистика
  • Комедии
  • Триллеры
  • Мелодрамы
  • Фантастика
  • Мультфильмы
  • Приключения
  • Связь с админом
  • Список пользователей
  • Полная статистика сайта
  • ТОП наград
  • Переводчик
  • Конвертер величин
  • Проверка правописания
  • Раздача ICQ
  • Оставить отзыв о сайте
  • Раскрутка сайтов

  • Поиск по сайту
    Введите ключевое слово
    для поиска



    Статистика сайта




    ProfiSmart TOP webgari.com Рейтинг сайтов

    Каталог сайтов

    bodr_top
    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Зарегистрировано:
    Всего: 1117
    Парней: 1070
    Девушек: 47
    Последний: molodoo

    Облако тегов
    Важная информация
    Главная » Статьи » Wap/Web Мастеру » PHP, Perl, ASP

    Применение cURL и liburl в php
    1. Вступление
    2. Что такое cURL и libcurl
    3. Инсталляция cURL
    4. Пример использования cURL
    5. Пример использования cURL в php 
    Вступление

    Это руководство предназначено для тех web-разработчиков, которые хотят автоматизировать передачу файлов по сети либо взаимодействовать с другими Интернет - сервисами. Для чтения этой главы вам необходимо владеть пониманием принципа работы стратегии клиент - сервер и знать основы синтаксиса PHP. 

    cURL и libcurl - библиотеки, позволяющие серверу передавать файлы на удаленный компьютер, используя множество Интернет протоколов. Библиотеки имеют очень гибкую настройку и позволяют выполнить практически любой удаленный запрос. Используя их, web-сервер может выступать полноценным клиентом любого основанного на HTTP протоколе сервисе, к примеру: XML-RPC, SOAP, или WebDAV. 

    В этой статье будет рассказано о том, что такое cURL, как его использовать из командной строки, и о его применении в PHP. 
    Что такое cURL и libcurl

    cURL является сокращением от "Client URLs". Он был разработан Daniel Stenberg в 1998 году как утилита, работающая из командной строки. Libcurl - переносимая библиотека, предоставляющая простой API-интерфейс к функциональности cURL. Библиотека безопасна в мультипоточной среде, совместима с IPv6 и поддерживает постоянные соединения. Интерфейс взаимодействия с php был добавлен Sterling Hughes. 

    cURL и libcurl могут использоваться для передачи информации с использованием таких протоколов, как HTTPS, FTP, FTPS, GOPHER, LDAP, DICT, TELNET и FILE. Реализована поддержка практически всех *nix систем, а также Windows, OS/2, BeOS и некоторых других. 

    Библиотека curl - Open Source продукт с оригинальной MIT/X лицензией, позволяющей использовать этот пакет в любых: как коммерческих, так и некоммерческих целях, включать ее в свой дистрибутив (даже если он распространяется без открытого исходного кода). 

    Необходимо понимать, что cURL не имеет ничего общего с Curl Corporation, являющейся коммерческим производителем языка программирования Curl. 
    Инсталляция cURL

    Для работы в PHP версии 4.2.3 и выше вам необходим cURL версии не ниже 7.9.0. Для работы в PHP версии 4.3.0 и выше вам необходим cURL версии не ниже 7.9.8. 
    Windows

    Как и любой другой дополнительный модуль, он требует проинсталлированного дистрибутива PHP. Для установки cURL скопируйте файлы php4ts.dll, ssleay32.dll, php_curl.dll, msvcrt.dll из каталога DLL в системную директорию Windows, как правило, это: 
    c:windowssystem для Windows 9x/Me
    c:winntsystem32 для Windows NT/2000
    c:windowssystem32 для Windows XP.

    После этого необходимо раскомментировать строку 
    ;extension=php_curl.dll

    в файле php.ini, либо подгружать модуль динамически, во время работы скрипта. 

    dl("php_curl.dll"); 
    ?> 
    Unix

    Ближайшее зеркало, содержащее исходные коды и откомпилированные бинарные файлы для различных операционных систем, вы можете найти на сайте http://curl.haxx.se/. 

    Поскольку cURL использует библиотеку openssl для SSL соединений, вначале необходимо установить на север SSL. В случае, если при инсталляции cURL библиотека openssl найдена не будет, произойдет установка cURL без поддержки SSL соединений. 

    Инсталляция cURL состоит из следующих шагов: ./configure, make, make install. 

    После этого необходимо пересобрать PHP c опцией --with-curl 

    О том, включена ли поддержка cURL в php, вы можете узнать, выполнив phpinfo(). 
    Пример использования cURL

    Использование cURL из командной строки очень просто. Следующий пример запрашивает web-страницу и выводит ее в stdout 
    $ curl -L zend.com

    M(опция -L разрешает переадресации)

    Также возможно использование cURL из командной строки при помощи PHP. Следующий пример запрашивает 3 страницы и выводит их на экран 

    $var = echo shell_exec("/usr/bin/curl -L http://www.zend.com http://zend.com/developers.php http://zend.com/zend/tut/"); 
    ?> 
    Пример использования cURL в PHP

    Использование libcurl в php-скрипте является достаточно простым, особенно для таких операций, как генерация POST-запросов. 

    Для использования libcurl необходимо выполнить следующие шаги: 
    Инициализировать сессию cURL 
    Установить опции cURL (порядок установки опций не имеет значения) 
    Выполнить запрос 
    Завершить сессию cURL 

    Для демонстрации вышеперечисленного приведем практические примеры использования cURL для генерации POST-запроса, HTTP-авторизации, FTP-сессии. 

    // Поиск книг на сервере amazon.com 
    $url = "http://www.amazon.com/exec/obidos/search-handle-form/002-5640957-2809605"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); // set url to post to 
    curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable 
    curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s 
    curl_setopt($ch, CURLOPT_POST, 1); // set POST method 
    curl_setopt($ch, CURLOPT_POSTFIELDS, "url=index%3Dbooks&field-keywords=PHP+MYSQL"); // add POST fields 
    $result = curl_exec($ch); // run the whole process 
    curl_close($ch);  
    echo $result; 
    ?> 

    // HTTP authentication 
    $url = "http://www.example.com/protected/"; 
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($ch, CURLOPT_URL, $url);  
    curl_setopt($ch, CURLOPT_USERPWD, "myusername:mypassword");  
    $result = curl_exec($ch);  
    curl_close($ch);  
    echo $result; 
    ?>

    // FTP this script to a server 
    $fp = fopen(__FILE__, "r"); 
    $url = "ftp://username:password@mydomain.com:21/path/to/newfile.php"; 
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, $url);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($ch, CURLOPT_UPLOAD, 1);  
    curl_setopt($ch, CURLOPT_INFILE, $fp);  
    curl_setopt($ch, CURLOPT_FTPASCII, 1);  
    curl_setopt($ch, CURLOPT_INFILESIZE, filesize(__FILE__));  
    $result = curl_exec($ch);  
    curl_close($ch);  
    ?> 

    При возникновении проблем в использовании cURL необходимо добавить следующие строки перед вызовом curl_close для получения отчета о последнем выполненном запросе: 

    print_r(curl_getinfo($ch));  
    echo "nncURL error number:" .curl_errno($ch);  
    echo "nncURL error:" . curl_error($ch);  
    // ...close cURL handle ($ch) below 
    ?> 

    Решение о том, что использовать: cURL или libcurl, - стоит принимать в зависимости от обстоятельств. В случае, если Вы пишете выполняемый из командной строки скрипт, либо у Вашего провайдера нет поддержки libcurl, имеет смысл использовать cURL. В остальных случаях использование libcurl оказывается более удобным.  

    Категория: PHP, Perl, ASP | Добавил: Admin | Дата: 12.09.2009 | Просмотры: 1383 | Рейтинг:
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Вход на сайт
    Гость, добро пожаловать на best-club! Тапки в углу, пиво в холодильнике. Располагайся:) Для получения большего комфорта войди как пользователь или зарегистрируйся.



    Обмен музыкой [?]
    Открыть в новом окне

    Партнёры





    Опрос

    Вы впервые на нашем сайте?
    Всего ответов: 23

     
    Best-club team © 2008 - 2025

    SiteMap Партнёры и друзья Поддержать проект
    Третий Мир: Война Королей - Форум
    Администрация сайта не несёт ответственности за материалы опубликованные на сайте! Все материалы исключительно для ознакомления!
    Мини профиль