- Настройка curl php на Windows
- Настройка cURL
- Включение поддержки SSL для cURL
- Проверка работы cURL
- Как установить cURL на Windows?
- PHP CURL – функции и примеры использования
- Что такое CURL?
- Подключение библиотеки CURL в PHP
- Пример CURL – запрашиваем удаленную страницу для вывода на экран
- Пример CURL – вызываем удаленный скрипт и получаем результат
- Часто используемые функции CURL и константы
Настройка curl php на Windows
Настройка cURL
Написанное ниже актуально для связки Windows 8.1 x64 , Windows10 x64 + Apache 2.4.12 (win32) + Open SSl 1.0.1m + PHP 5.6.11 (php-5.6.11-Win32-VC11-x86).
- Скачиваем библиотеку cURL http://winampplugins.co.uk/curl. Распаковываем в любую папку. Например, «W:\WebServers\usr\local\curl».
- В файле настроек PHP php.ini необходимо включить расширение extension=php_curl.dll.
- Пункт не обязательный, но во многих источниках его рекомендуют выполнять. У нас работает без выполнения этого пункта. Из папки где установлен PHP скопировать в папку « C:\Windows \system32» следующие библиотеки: libssh2.dll, php_curl.dll (находится в папке ext), ssleay32.dll, libeay32.dll. Дополнительно файл ssleay32.dll необходимо скопировать в «C:\Windows\SysWOW64».
- Добавить в переменные среды в переменную Path пути до папки установки curl.exe и файла php.ini. Например, «W:\WebServers\usr\local\curl;W:\WebServers\usr\local\php5». Очень порадовало то, что в windows10 (1511) появился новый интерфейс редактирования переменных сред. Стало очень удобно редактировать параметры.
Включение поддержки SSL для cURL
- Скачать файл http://curl.haxx.se/ca/cacert.pem в папку, в которой установлена библиотека curl.exe.
- Переименовать скаченный файл в curl-ca-bundle.crt
- Перезагрузить компьютер.
Проверка работы cURL
© 2004–2020 Студия Павла Филинкова в Екатеринбурге
Вся информация на сайте носит справочный характер и не является публичной офертой.
Как установить cURL на Windows?
Я выполнил все инструкции здесь: http://www.tonyspencer.com/2003/10/22/curl-with-php-and-apache-on-windows/
для установки & config apache получите пакеты PHP5 и получите пакеты CURL.
Я запускаю apache и запускаю скрипт PHP. без проблем. но когда я запускаю php-скрипт с завитком, он терпит неудачу.
Он возвращает: **Call to undefined function curl_version() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\testing.php on line 5**
В строке 5 вызывается curl_init()
Я вывожу php -i, чтобы узнать, вызывается ли правильный путь к расширению. Он правильно установлен:
Я даже пытался запустить curl_version() но все же возникает ошибка такого же типа.
Похоже, что PHP не может найти расширение CURL, но php.ini (а также php -i) показывает, что он установлен.
Я этого не понял:
Причина, по которой мне нужно использовать CURL, – это требование моего проекта. Поэтому я могу только придерживаться этого. XAMPP … как он работает в Windows? Есть ли сайт, который вы можете порекомендовать? Благодарю.
Я пробовал много вещей при установке cURL и проверял все, но все же, я все еще обнимаюсь вокруг проблемы и понятия не имею, что происходит.
Сервер Apache использует правильный PHP.ini. и PHP.ini имеет правильный extension_dir и extension = php_curl.dll. Я понятия не имею, почему это не работает. даже я следую за каждым шагом для его настройки. 🙁
Вероятно, вы ошибаетесь, что PHP.ini вам нужно изменить. сначала добавьте PHPinfo (); на info.php и запустите его из своего браузера.
Запишите путь каталога PHP ini, который вы видите в списке переменных сейчас! Вы, вероятно, заметите, что он отличается от вашего INI-файла PHP-CLI.
Для установки завитка выполните следующие действия:
Выберите операционную систему в раскрывающемся списке: либо Windows / Win32, либо Win 64. Нажмите «Выбрать»!
Для Win 32 выберите, будете ли вы использовать завиток в командной строке Windows (Generic) или на терминале Cygwin (cygwin). Для Win 64 выберите, будете ли вы использовать завиток в командной строке Windows (Generic) или MinGW (MinGW64). Нажмите «Выбрать»!
При необходимости выберите свою операционную систему Windows. Конец.
Нажмите Загрузить для версии с включенным или отключенным SSL.
Откройте загруженный zip-файл. Извлеките файлы в удобное для поиска место, например C: \ Program Files.
Тестирование завитка
Откройте терминал командной строки Windows. (В меню «Пуск» выберите «Выполнить», затем введите cmd.)
Установите путь, чтобы включить каталог, в который вы помещаете curl.exe. Например, если вы поместите его в C: \ Program Files \ curl, вы должны ввести следующую команду: set path =% path%; «c: \ Program Files \ curl»
ПРИМЕЧАНИЕ. Вы также можете напрямую скопировать файл curl.exe любым существующим путем в вашем пути
- Тип curl. Вы должны увидеть следующее сообщение: curl: попробуйте «curl -help» или «curl -message» для получения дополнительной информации. Это означает, что завиток установлен, и путь правильный.
Я использую XAMPP, в котором есть несколько файлов php.ini.
Вы можете найти строку в файлах php.ini ;extension=php_curl.dll
Удалите ; в начале этой строки. Возможно, вам придется перезапустить сервер Apache.
У меня также были проблемы с этим. После того, как все эти шаги сделаны правильно и некоторые исправленные недоразумения (нет extensions_dir, но extension_dir, и нет session.save_path, но session.save_path) ничего не работает.
Наконец, я нашел эту заметку на php.net:
Примечание. Примечание для пользователей Win32. Чтобы включить этот модуль в среде Windows, libeay32.dll и ssleay32.dll должны присутствовать в вашем PATH. Вам не нужно libcurl.dll с сайта cURL.
Недавно я установил Curl на PHP5 для Windows Vista. Я не включил CURL-библиотеку, когда я первоначально установил PHP5, поэтому ничего не появилось в phpinfo () или php.ini.
Я установил CURL, перезапустив установщик PHP5 (php-5.2.8-win32-installer.msi для меня) и выбрав «Изменить». Затем я добавил компонент CURL. Перезапустите Apache, и CURL должен работать. CURL появится в phpinfo (). Кроме того, вот пример скрипта, который вы можете запустить, чтобы проверить, работает ли он. Он отображает RSS-канал от Google:
Примечание. Примечание для пользователей Win32. Чтобы включить этот модуль (cURL) в среде Windows, libeay32.dll и ssleay32.dll должны присутствовать в вашем PATH. Вам не нужно libcurl.dll с сайта cURL.
Эта заметка решила мою проблему. Мысль об обмене. libeay32.dll & ssleay.dll вы найдете в папке установки php.
Еще один ответ для других людей, у которых была эта проблема
когда вы прокомментируете линию расширения, измените ее на:
Расширение = C: /php/ext/php_curl.dll
или расположение папки расширения, для меня это не сработало, пока я не сделал это
Да, после установки есть 3 файла php.ini, один для php4, один для php5, а один для apache. Пожалуйста, измените их соответствующим образом.
Я согласен с Erroid, вы должны добавить каталог PHP в среду PATH.
Это сработало для меня. Спасибо.
Я решил проблему.
В моем apache я должен указать:
PHPIniDir «C: // php» Приложение AddType / x-httpd-php .php
а для php.ini вместо использования php.ini_recommend используйте php.ini_dist для настройки моего php.ini.
затем убедитесь, что двигатель php включен. то он работает сейчас. Спасибо всем.
Вы можете использовать двоичный файл файла curl .download отсюда: http://www.paehl.com/open_source/?CURL_7.22.0 Загрузите файл и после того, как извлечение будет загружено на любой диск и установите абсолютный путь в среду, вы можете также используйте curl в качестве команды в окнах. например c: \ curl -u user@example.com: пароль http: // localhost: 3000 / user / sign_in
Вы также можете использовать CygWin и установить пакет cURL. Он работает очень хорошо и безупречно !!
PHP CURL – функции и примеры использования
Предлагаю немного поговорить о языке программирования PHP, а конкретно затронуть тему расширения CURL, т.е. возможность взаимодействовать с различными серверами по различным протоколам из самого скрипта PHP.
Перед тем как приступить к рассмотрению curl хочу напомнить, что язык PHP мы с Вами уже затрагивали, например, в материале про выгрузку в Excel на PHP или возможность аутентификации на PHP, а теперь давайте поговорим о возможности посылать запросы на PHP.
Что такое CURL?
CURL – это библиотека функций PHP, с помощью которой можно посылать запросы, например, HTTP, из PHP скрипта. CURL поддерживает такие протоколы как HTTP, HTTPS, FTP и другие. Посылать HTTP запросы можно методами GET, POST, PUT.
CURL может пригодиться в случаях когда необходимо вызвать удаленный скрипт и получить результат или просто сохранить HTML код вызываемой страницы, в общем каждый может найти свое применение но смысл один это то что можно послать запросы в процессе выполнения скрипта.
Подключение библиотеки CURL в PHP
Для того чтобы использовать библиотеку CURL ее соответственно нужно подключить.
Примечание! В качестве примера мы будем использовать PHP 5.4.39 на Windows 7, а в качестве Web-сервера у нас будет выступать Apache 2.2.22.
Первое что нужно сделать, это скопировать библиотеки ssleay32.dll, libeay32.dll, libssh2.dll они расположены в директории с PHP, в системный каталог Windows, а именно в C:\Windows\System32.
Затем в php.ini подключить библиотеку php_curl.dll, т.е. раскомментировать следующую строку
Библиотека не подключена
Все, перезапускаем Apache, вызываем функцию phpinfo() и в случае успешного подключения у Вас должен появиться раздел curl
Если его нет, то это означает только одно, что библиотека не загрузилась, самая распространенная причина этого небыли скопированы вышеперечисленные DLL в системный каталог Windows.
Пример CURL – запрашиваем удаленную страницу для вывода на экран
В данном примере мы просто запросим удаленную страницу по протоколу HTTP методом GET и выведем ее содержимое на экран.
У нас имеется каталог test в нем 2 PHP файла это test_curl.php и test.php, где test_curl.php и есть скрипт где мы будем использовать curl, а test.php удаленный скрипт который мы будем вызывать. Код я подробно прокомментировал.
Код test_curl.php
Код test.php
В итоге если вы запустите test_curl.php у Вас выведется на экран надпись «Заголовок 1», можете поэкспериментировать с передачей параметров id (в данном случае 2 или 3).
Пример CURL – вызываем удаленный скрипт и получаем результат
Сейчас давайте попробуем вызвать скрипт и получить результат, для того чтобы потом его обработать, для примера давайте использовать метод POST. Названия файлов оставим такими же.
Код test_curl.php
Код test.php
И если мы запустим test_curl.php то на экран у нас выведется 111, т.е. 1.11 полученное в результате обращения к удаленному скрипту, умноженное на 100.
А теперь давайте поговорим о функциях и константах к ним.
Часто используемые функции CURL и константы
- curl_init — Инициализирует сеанс;
- curl_close — Завершает сеанс;
- curl_exec — Выполняет запрос;
- curl_errno — Возвращает код ошибки;
- curl_setopt — Устанавливает параметр для сеанса, например:
- CURLOPT_HEADER – значение 1 означает, что необходимо вернуть заголовки;
- CURLOPT_INFILESIZE — параметр для указания ожидаемого размера файла;
- CURLOPT_VERBOSE — значение 1 означает что CURL будет выводить подробные сообщения о всех производимых операциях;
- CURLOPT_NOPROGRESS – отключение индикатора прогресса операции, значение 1;
- CURLOPT_NOBODY – если Вам не нужен документ, а нужны только заголовки, то поставьте значение 1;
- CURLOPT_UPLOAD — для закачки файла на сервер;
- CURLOPT_POST – выполнить запрос методом POST;
- CURLOPT_FTPLISTONLY — получение списка файлов в директории FTP сервера, значение 1;
- CURLOPT_PUT — выполнить запрос методом PUT, значение 1;
- CURLOPT_RETURNTRANSFER — возвратить результат, не выводя в браузер, значение 1;
- CURLOPT_TIMEOUT – максимальное время выполнения в секундах;
- CURLOPT_URL – указание адреса для обращения;
- CURLOPT_USERPWD — строка с именем пользователя и паролем в виде [username]:[password];
- CURLOPT_POSTFIELDS – данные для POST запроса;
- CURLOPT_REFERER — задает значение HTTP заголовка «Referer: »;
- CURLOPT_USERAGENT — задает значение HTTP заголовка «User-Agent: »;
- CURLOPT_COOKIE — содержимое заголовка «Cookie: », который будет отправлен с HTTP запросом;
- CURLOPT_SSLCERT- имя файла с сертификатом в формате PEM;
- CURLOPT_SSL_VERIFYPEER – значение 0, для того чтобы запретить проверку сертификата удаленного сервера (по умолчанию 1);
- CURLOPT_SSLCERTPASSWD — пароль к файлу сертификата.
- curl_getinfo — Возвращает информацию об операции, вторым параметром может выступать константа для указания, что именно нужно показать, например:
- CURLINFO_EFFECTIVE_URL — последний использованный URL;
- CURLINFO_HTTP_CODE — последний полученный код HTTP;
- CURLINFO_FILETIME — дата модификации загруженного документа;
- CURLINFO_TOTAL_TIME — время выполнения операции в секундах;
- CURLINFO_NAMELOOKUP_TIME — время разрешения имени сервера в секундах;
- CURLINFO_CONNECT_TIME — время, затраченное на установку соединения, в секундах;
- CURLINFO_PRETRANSFER_TIME — время, прошедшее от начала операции до готовности к фактической передаче данных, в секундах;
- CURLINFO_STARTTRANSFER_TIME — время, прошедшее от начала операции до момента передачи первого байта данных, в секундах;
- CURLINFO_REDIRECT_TIME — время, затраченное на перенаправление, в секундах;
- CURLINFO_SIZE_UPLOAD — количество байт при закачке;
- CURLINFO_SIZE_DOWNLOAD — количество байт при загрузке;
- CURLINFO_SPEED_DOWNLOAD — средняя скорость закачки;
- CURLINFO_SPEED_UPLOAD — средняя скорость загрузки;
- CURLINFO_HEADER_SIZE — суммарный размер всех полученных заголовков;
- CURLINFO_REQUEST_SIZE — суммарный размер всех отправленных запросов;
- CURLINFO_SSL_VERIFYRESULT — результат проверки SSL сертификата, запрошенной с помощью установки параметра CURLOPT_SSL_VERIFYPEER;
- CURLINFO_CONTENT_LENGTH_DOWNLOAD — размер загруженного документа, прочитанный из заголовка Content-Length;
- CURLINFO_CONTENT_LENGTH_UPLOAD — размер закачиваемых данных;
- CURLINFO_CONTENT_TYPE — содержимое полученного заголовка Content-type, или NULL в случае, когда этот заголовок не был получен.
Подробнее о функциях CURL и константах к ним можете посмотреть на официальном сайте PHP — php.net
На этом все, для начинающих я думаю достаточно Удачи!