投稿パラメータでhttprequestを作成したいだけです。このコードを使用しました
$r = new HttpRequest($url, HttpRequest::METH_POST);
$r->send();
しかし、私はこのエラーを受け取ります:
ErrorException [致命的なエラー]:クラス 'HttpRequest'ではない
追加した extension=php_http.dll
これは私のphp.iniにありますが、問題はまだ存在します。 php_http.dllファイルをダウンロードして、phpのextフォルダーに挿入しましたが、既に存在していたため、交換しても同じ問題が発生します。
助けていただければ幸いです
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ウェブサイトで見つけることができます ここ
これがあなたの質問に答える助けになることを望みます。
あなたのPHPバージョンに一致する_php_http.dll
_を持っていることを確認する必要があります。拡張機能がロードされていることを確認するには<?php phpinfo();
を実行できます、バージョンと使用可能なクラスがリストされます)。
拡張子がphpinfo()
に表示されない場合は、ログを確認して問題の原因を確認するか、コマンドプロンプトから直接PHPバイナリを実行します— _php -i
_。ダイナミックライブラリの読み込み中にエラーが発生すると、ダイアログボックスに表示されます。拡張機能の読み込みに失敗しても、PHPは引き続き機能します。