web-dev-qa-db-ja.com

HttpRequestがphpに見つかりません

投稿パラメータでhttprequestを作成したいだけです。このコードを使用しました

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

しかし、私はこのエラーを受け取ります:

ErrorException [致命的なエラー]:クラス 'HttpRequest'ではない

追加した extension=php_http.dllこれは私のphp.iniにありますが、問題はまだ存在します。 php_http.dllファイルをダウンロードして、phpのextフォルダーに挿入しましたが、既に存在していたため、交換しても同じ問題が発生します。

助けていただければ幸いです

14

Php 5.4以降を使用している場合、拡張ライブラリに含めるphp_http.dllファイルはないようです(見逃したものを誰かが見つけられない場合は??)。

Php.ini構成ファイルを更新して拡張機能を含めた後、Apacheサーバーの起動時に生成されたエラーを見つけることができる唯一のもの。

ただし、拡張機能ではなく、クラス内で機能を提供する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を自分でコンパイルすることだけだと思われます here :(

それ以外の場合は、代わりに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ウェブサイトで見つけることができます ここ

これがあなたの質問に答える助けになることを望みます。

8
guyver4mk

あなたのPHPバージョンに一致する_php_http.dll_を持っていることを確認する必要があります。拡張機能がロードされていることを確認するには<?php phpinfo();を実行できます、バージョンと使用可能なクラスがリストされます)。

拡張子がphpinfo()に表示されない場合は、ログを確認して問題の原因を確認するか、コマンドプロンプトから直接PHPバイナリを実行します— _php -i_。ダイナミックライブラリの読み込み中にエラーが発生すると、ダイアログボックスに表示されます。拡張機能の読み込みに失敗しても、PHPは引き続き機能します。

4
user555

パッケージを再インストールできます

$ pecl install -f pecl_http-1.7.6

または this snippet のようなcurlを使用してデータにアクセスします

4
tony gil