PHP 用の Simple HTML DOM Parser があり、次のマークアップを使用しています。
$html = file_get_html('http://www.google.com');
しかし、投稿変数 (cURL など) をそのページに送信して応答を取得するにはどうすればよいですか? 例えば
$html = file_get_html('http://www.google.com', array("Item"=>"Value", "Item2"=>"Value2"));
私が見る限り、ドキュメントには記載されていませんが、ソース コードを調べたところ、使用している関数が3 番目の引数としてストリーム コンテキストを受け入れることに気付きました。次のように、この PHP 機能を使用して投稿リクエストを作成できます。
$request = array(
'http' => array(
'method' => 'POST',
'content' => http_build_query(array(
'Item' => 'Value',
'Item2' => 'Value2'
)),
)
);
$context = stream_context_create($request);
$html = file_get_html('http://www.google.com', false, $context);
コンテキストが気に入らない場合や別の方法 (cURL 拡張機能など) を使用したい場合は、それを使用してページ コンテンツを取得し、それをstr_get_html()orでパーサーにフィードすることもでき$parser->load()ます。クラス自体は、現在使用しているメソッドと内部的にほとんど同じことを行います。