Могу ли я включить библиотеку CURL в свой PHP-скрипт как класс - PullRequest
1 голос
/ 17 февраля 2009

Я хочу использовать библиотеку CURL, но не хочу ее сложно устанавливать

Я просто хочу сделать что-то подобное

require_once('curl.php');

Я не уверен, возможно ли это или нет? и где я могу найти этот класс CURL?

спасибо

Ответы [ 4 ]

7 голосов
/ 17 февраля 2009

PHP требует, чтобы он был собран с библиотекой cURL, см .:

http://www.php.net/manual/en/curl.installation.php

Таким образом, вы должны установить libcurl-devel для вашей системы, а затем скомпилировать PHP с

--with-curl

А может быть

--with-curl=/path/to

Если вы установили его в нестандартном месте.

3 голосов
/ 17 февраля 2009

Ваша копия PHP либо должна быть построена с помощью Curl, либо динамически загружать ее (поскольку Curl изначально не написан на PHP, это библиотека C).

Создайте простой скрипт, который вызывает phpinfo (). Если curl был встроен, он должен отображаться на этой странице.

phpinfo ();

1 голос
/ 19 июля 2012

Существует также отдельная версия под названием «MyCurl», которую можно включить без установки:

http://www.phpclasses.org/package/3588-PHP-Pure-PHP-implementation-of-the-cURL-library.html

Я использовал его в своем проекте, и он отлично работал с http-запросами.

Этот класс предоставляет альтернативную реализацию функций расширения cURL в чистом PHP.

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

В настоящее время он реализует функции: curl_init, curl_exec, curl_setopt и curl_close. Некоторые из наиболее важных параметров могут быть установлены с помощью функции curl_setopt.

, хотя у него есть небольшие ошибки, он исправляет это:

  1. пример не работает "из коробки", так как домен lazywebmastertools.com не доступен для повторного использования
  2. требуется @, если запрашиваемый домен заканчивается до "/":

    return "/".@$tmp[1];

  3. если вы не используете прокси, вам нужно установить

    if (isset ($ this-> proxy) и $ this-> proxy ["host"]) ...

  4. if (isset ($ this-> headers ["location"]) и $ this-> headers ["location"]> "") {...

недостаток в том, что этот класс до сих пор поддерживает https. там вам понадобится класс Snoopy: https://stackoverflow.com/a/1154247/1069083

1 голос
/ 17 февраля 2009

Существует реализация Pure PHP Curl libCurlEmu

Только помните: вы должны только использовать этот тип вещи в качестве крайней меры, если вы не можете заставить работать расширения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...