альтернатива php libcurl - PullRequest
       6

альтернатива php libcurl

3 голосов
/ 28 августа 2009

Есть ли альтернативы использованию curl на хостах, которые отключили curl?

Ответы [ 4 ]

7 голосов
/ 28 августа 2009

Для извлечения контента через HTTP, во-первых, вы можете попробовать набрать file_get_contents; возможно, ваш хост не отключил поток http: // stream:

$str = file_get_contents('http://www.google.fr');

Бит это может быть отключено (см. allow_url_fopen); а иногда это ...


Если он отключен, вы можете попробовать использовать fsockopen ; пример, приведенный в руководстве, гласит: (цитирование) :

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}

Учитывая, что он довольно низкоуровневый, хотя (вы работаете прямо с сокетом, а протокол HTTP не так прост) , использование библиотеки, которая его использует, облегчит вам жизнь.

Например, вы можете взглянуть на snoopy ; здесь является примером.

3 голосов
/ 28 августа 2009

http://www.phpclasses.org полон этих "альтернатив", вы можете попробовать это: http://www.phpclasses.org/browse/package/3588.html

2 голосов
/ 29 августа 2009

Все ответы в этой теме представляют правильные обходные пути, но есть одна вещь, которую вы должны иметь в виду. По какой-либо причине ваш хост считает, что отправка HTTP-запросов с вашего веб-сервера через PHP-код - это «плохая вещь», и поэтому отключил (или не включил) расширение curl. Есть очень хороший шанс, если вы найдете обходной путь, и они заметят, что они заблокируют ваш запрос другим способом. Если только нет политических причин, заставляющих вас использовать этот конкретный хост, серьезно подумайте о том, чтобы переместить ваше приложение / страницу в другое место, если оно должно выполнять http-запросы.

2 голосов
/ 29 августа 2009

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

...