Глобальное взаимодействие или просто cURL

Все процессы, которые можно автоматизировать – должны быть автоматизированы. Это выражение в наши дни является одной из движущих сил, определяющих развитие высоких технологий.

Сперва был сделан компьютер для автоматизации анализа и вычислений данных. Потом придумали ПО, которое позволяло, используя один компьютер решать разные задачи.

Но время не стоит на месте и теперь даже ПО не справляется с величинами и сложностью тех задач, которые перед ним ставят. Не справляется в одиночку…
Ему на выручку все чаще приходит человек, который разбивает задачу на более мелкие части и поручает каждую часть отдельной программе.

Именно по такому принципу, как правило, организуется взаимодействие между программами в пределах одного компьютера или вычислительного комплекса.

Появился Интернет. Началось массовое внедрение интерактивных приложений (написанных на php, например), которые занимаются все теми же задачами анализа и преобразования данных.

Интернет позволил выйти приложениям на совершенно новый уровень взаимодействия, благодаря которому круг задач, которые раньше могли решать только большие организации, теперь может решить даже начинающий программист на php :)
Например, приложения от Google позволяют просматривать снимки Земли из космоса на наших компьютерах.
Но браузер это средство взаимодействия для обычных пользователей :)

Для программистов большинство веб-приложения предоставляют интерфейс немного в другом виде. Собственно об этом и буду сегодня писать.

В мире веб-разработки выработался стандарт реализовывать такое взаимодействие путем передачи между скриптами xml-файлов заданной структуры.

Передачу данных от вашего скрипта, скрипту находящемуся где-то на другом сервере можно реализовать через механизм сокетов. Но лучше для это использовать специальную библиотеку cURL.

Мануал пишет:
“В PHP включена поддержка libcurl - библиотеки функций, написанной Daniel Stenberg, которая позволяет взаимодействовать с различными серверами по различным протоколам. В настоящее время libcurl поддерживает протоколы http, https, ftp, gopher, telnet, dict, file, и ldap. libcurl также умеет работать с сертификатами HTTPS, посылать запросы к HTTP серверам методами POST и PUT, закачивать файлы по протоколам HTTP и FTP, использовать прокси-серверы, cookies и аутентификацию пользователей.”

В общих чертах все это работает следующим образом:

Итак, быстрый старт :)

<?
    $ch = curl_init("https://i-novice.net");
    curl_exec($ch);
    curl_close($ch);
?>

Этот скрипт выведет сайт i-novice.net в ваш браузер.

<?
    $ch = curl_init("https://i-novice.net");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $inovice = curl_exec($ch);
    curl_close($ch);
    echo htmlspecialchars($inovice);
?>

А этот сперва сохранит его в переменную $inovice, а потом выведет его исходный код в ваш браузер :)

Опций у библиотеки curl очень много и вы сами можете с ними поэкспериментировать. Организовывать взаимодействие таким способом очень удобно, особенно вместе с xml parser`ом :)



Теги:


Читайте также:



13 Ответов на “Глобальное взаимодействие или просто cURL”

  1. Действительно, cURL очень удобен, все скрипты на нем пишу. Только вот все никак не соберусь сокеты освоить, ну хотя бы для общего развития :)

  2. novice

    Да, надо будет тоже попробывать 😉

  3. Тоже новичок в программировании, но стараюсь освоить PHP по мере сил. cURL оказался классной вещью! Только недавно начал разбираться с ним. Написал на нем скриптик для постинга в соц. закладки. cURL снимает многие проблемы.

  4. novice

    Полностью согласен :)

  5. ant

    Доступно. А я парсировал чужие страницы через fsockopen. Про curl слышал из линукса - удобная штука. Надо будет попробовать приложить её к php.

  6. novice

    Я конечно не долго с php работаю, но за все это время ни разу не было случая, чтобы curl не было достаточно для решения какой-то задачи. Очень функциональная вещь. Так что советую! :)

  7. Про cURL хотелось бы поподробнее.
    Простые и не очень примеры, разобранные по косточкам. Практическое применение.
    В общем - всё что поможет в освоении этого зверя (пока он мне не даётся).

  8. novice

    2 Redmonk: хорошо, как-нибудь обязательно подробнее рассмотрю этот вопрос

  9. Вы не планируете в ближайшее время статей на тему использования прокси в скриптах на PHP? Эта тема тоже очень интересна, а учитывая вашу манеру написания статей, информация будет воспринята очень легко. :)

  10. novice

    Посмотрим в ближайшее время, что можно написать про это

  11. К сожалению приведённые примеры не работают, использую денвер, пхп5, выводится ошибка:
    “Fatal error: Call to undefined function curl_init() in Z:\home\***\ex.php on line 2″
    скорее всего эту библиотеку надо как-то подключить, не могли бы вы более подробно описать как использовать указанные функции?

  12. novice

    Правильно, библиотеку нужно подключить в php.ini - раскомментировать (или добавить) строчку extension=php_curl.dll

  13. Алексей

    Пустая статья - всё это если не больше можно взять с [ссылка]. А где конкретные примеры с удалённой авторизацией пользователя по https или загрузкой файла на сервер с помощью cURL? Для введения не плохо, но…


© Copyright. . I-Novice. All Rights Reserved. Terms | Site Map