Я просто хочу сделать httprequest с параметрами сообщений. Я использовал этот код
$r = new HttpRequest($url, HttpRequest::METH_POST); $r->send();
но я получаю эту ошибку:
ErrorException [Неустранимая ошибка]: класс «HttpRequest» не
Я добавил extension=php_http.dll
на свой php.ini, но проблема все еще существует. Я загружаю файл php_http.dll и вставляю его в папку ext php, но он уже существует, поэтому я заменил и все еще имею ту же проблему.
Любая помощь будет оценена
Если вы используете 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 здесь
Надеюсь, это поможет ответить на ваш вопрос, а не оставить вас больше …
Вы должны убедиться, что у вас есть php_http.dll
который соответствует вашей версии PHP. Вы можете сделать <?php phpinfo();
для проверки с расширением загружаются (найдите «http», он отобразит версию и доступные классы).
Если расширение не отображается в phpinfo()
, вы должны проверить свои журналы, чтобы узнать, откуда возникла проблема, или запустить двоичный файл PHP непосредственно из командной строки – php -i
. Если при загрузке динамической библиотеки возникнет какая-либо ошибка, она появится в диалоговом окне. Обратите внимание, что PHP все равно будет продолжать работать, даже если расширение не удалось загрузить.
вы можете переустановить пакет
$ pecl install -f pecl_http-1.7.6
или получить доступ к данным с помощью curl, как этот фрагмент