2013-09-02 7 views
11

投稿パラメータでhttprequestを作成したいだけです。私はPHPでHttpRequestが見つかりません

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

このコードを使用するが、私はこのエラーを取得:

ErrorException [ Fatal Error ]: Class 'HttpRequest' not

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

あなたは、PHP 5.4以上を使用している場合、誰かが私は逃したものを見つけることができない限り、すべてのヘルプは

+0

HIのようなカールを使用してデータにアクセスすることができますか? –

答えて

6

をいただければ幸いして、(拡張機能ライブラリに含めるphp_http.dllファイルがあるようには思えません? )。

拡張子を含むようにphp.ini構成ファイルを更新した後、Apacheサーバーの起動時にエラーが発生することがあります。

ただし、拡張ではなくクラス内で機能を提供するGitHubプロジェクトがあるようです。 Click here to find the required class

このクラスをプロジェクトに保存してsoのように呼び出すと、

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()); 

それに失敗する、それだけで、他の実行可能な選択肢がhere :(

そうでない場合は、ソースから自分を.dllをコンパイルするだろうと思われる、別のオプションは、代わりにカールを使用することです。カールが提供します。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); 

MorのEの詳細と、より良い例は、PHPのWebサイトHere

で見つけることができる私は、これはあなたの質問に答えるのではなく、より多くを残すことができます願っています...

+1

PHP 5.4用の 'php_http.dll'はhttps://github.com/stealth35/stealth35.githubにあります。com/downloads – user555

+0

ああ、私は結局盲目だったのですか? php_http.dllの検索を支援してくれてありがとう。 'php.ini'にインクルードしてApacheサービスを再起動した後、上記の.dllが正しく動作するかどうかを知っていますか? – guyver4mk

+0

PHP 5.4.7のインストールでうまく動作します。 'phpinfo()'は、拡張子 'http'バージョン' 1.7.4'が有効で動作していることを報告します。 – user555

4

あなたは、あなたにマッチするphp_http.dllを持っていることを確認する必要がありPHPのバージョン。 <?php phpinfo();を実行して、拡張機能がロードされているかどうかを確認できます(「http」を探して、バージョンと使用可能なクラスをリストします)。

phpinfo()に拡張子が表示されない場合は、ログを調べて問題の原因を調べるか、コマンドプロンプトから直接PHPバイナリを実行する必要があります。php -iダイナミックライブラリをロードする際にエラーが発生した場合は、ダイアログボックスに表示されます。拡張機能が読み込まれなくても、PHPは引き続き機能することに注意してください。

3

あなたは、DLLは、PHPの拡張フォルダに存在することを確認し、パッケージ

$ pecl install -f pecl_http-1.7.6 

を再インストールするか、this snippet

関連する問題