Подтвердить что ты не робот

HttpRequest не найден в php

Я просто хочу сделать httprequest с параметрами сообщения. Я использовал этот код

$r = new HttpRequest($url, HttpRequest::METH_POST);
$r->send();

но я получаю эту ошибку:

ErrorException [Неустранимая ошибка]: класс "HttpRequest" не

Я добавил extension=php_http.dll это в свой php.ini, но проблема все еще существует. Я загружаю файл php_http.dll и вставляю его в папку ext php, но он уже существует, поэтому я заменил и все еще имею ту же проблему.

Любая помощь будет оценена

4b9b3361

Ответ 1

Если вы используете php 5.4 или выше, файл php_http.dll, похоже, не включен в вашу библиотеку расширений (если кто-то не может найти тот, который я пропустил?).

Единственное, что я мог найти сгенерированные ошибки при запуске сервера Apache после обновления файла конфигурации php.ini, чтобы включить расширение.

Не бойтесь, однако, как представляется, проект GitHub, который обеспечивает функциональность внутри класса, а не расширение. Нажмите здесь, чтобы найти необходимый класс.

Если вы сохраните этот класс в своем проекте и называете это так:

include_once('HttpRequest.php'); //where HttpRequest.php is the saved file
$url= 'http://www.google.com/';
$r = new HttpRequest($url, "POST");
var_dump($r->send());

В противном случае, казалось бы, единственным возможным вариантом было бы скомпилировать .dll самостоятельно из источника здесь: (

В противном случае другим вариантом будет использование cURL. cURL предоставляет большинство (если не всех) функциональных возможностей httpRequest.

Простым примером этого может быть:

$url = "http://www.google.com/";        
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, TRUE); 
curl_setopt($ch, CURLOPT_NOBODY, TRUE); // remove body 
$head = curl_exec($ch); 
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 
var_dump($head);

Более подробные и лучшие примеры можно найти на веб-сайте php здесь

Я надеюсь, что это поможет ответить на ваш вопрос, а не оставить вас больше...

Ответ 2

Вам нужно убедиться, что у вас есть php_http.dll, который соответствует вашей версии PHP. Вы можете сделать <?php phpinfo();, чтобы проверить, загружены ли расширения (найдите "http", он отобразит версию и доступные классы).

Если расширение не отображается в phpinfo(), вы должны проверить свои журналы, чтобы узнать, откуда возникла проблема, или запустить двоичный файл PHP непосредственно из командной строки - php -i. Если при загрузке динамической библиотеки возникнет какая-либо ошибка, она появится в диалоговом окне. Обратите внимание, что PHP по-прежнему будет продолжать работать, даже если расширение не удалось загрузить.

Ответ 3

вы можете переустановить пакет

$ pecl install -f pecl_http-1.7.6

или получить доступ к данным с помощью curl, например этот фрагмент