cURL не работает правильно! - PullRequest
1 голос
/ 18 ноября 2010

У меня вопрос по поводу cURL.Я использую cURL с этой функцией:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Только это вызывало ошибку: «Сообщение: curl_setopt () [function.curl-setopt]: CURLOPT_FOLLOWLOCATION не может быть активирован, когда в safe_mode или установлен open_basedir"

Поэтому я попросил своего хостинг-провайдера исправить это, и они сделали.Но, и это действительно глупо, они помещают файл "curl" в мой каталог bin.И я понятия не имею, как включить это в мой скрипт php: S.

Никогда не делал этого раньше, но кто-нибудь может мне помочь.Я действительно застрял.Я надеюсь, что я опубликовал достаточно информации!

Tnx в продвинутом!


Tnx для всех замечательных ответов.Но как мне вписать "exec ()" в этот код?

    // create a new cURL resource
    $ch = curl_init();

    // set URL and other appropriate options
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_TRANSFERTEXT, TRUE);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_URL, $articleUrl);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 5);

    // grab URL and pass it to $grabArticle
    $grabArticle = curl_exec($ch);

Редактировать 2: Ладно, я почти все заработал :).Он работает просто отлично, когда я запускаю его в putty, но в моем php-скрипте ничего не происходит: (

Я запускаю это:

$grabArticle = exec('/home/twittern/bin/curl -L -m 30 -w url_effective --max-redirs 5 http://fok.nl/415758');
echo $grabArticle;

Что-то я делаю неправильно?

Ответы [ 3 ]

3 голосов
/ 18 ноября 2010

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

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

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

1 голос
/ 18 ноября 2010

Ваш провайдер отстой. Перезвоните им и заставьте их перекомпилировать php, чтобы включить поддержку curl.

В противном случае вы застряли с вызовом curl напрямую.

$result = exec("/bin/curl http://www.foobar.com");
1 голос
/ 18 ноября 2010

PHP curl не полагается на доступность корзины curl. (PHP поддерживает curl по умолчанию начиная с 4.0.2)

Ваш хостинг-провайдер должен только убедиться, что ваш PHP ini отключен safe_mode.

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

Лично я бы порекомендовал вам найти лучшего хозяина.

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