2011-01-11 7 views
-1

私はこのサイトから検索ボックスを取得したい、私はPHPの正規のフォーム部分を使用しますが、そこにはまだ多くの他のhtmlコードがあります。どのようにそれらを削除し、ちょうど純粋な検索ボックスを取得するには?ありがとう。PHP正規形と入力

<?php 
$str = file_get_contents('http://bingphp.codeplex.com'); 
preg_match_all('~<form.+</form>~iUs', $str, $match); 
var_dump($match); 
?> 
+0

あなたは何を達成しようとしていますか? – lonesomeday

+0

なぜこれをしたいですか?あなたはフォームを使用することができません... – diagonalbatman

+0

[PHP正規表現の問題の可能な重複](http://stackoverflow.com/questions/4645818/php-regex-problem) – mario

答えて

2

DomDocumentパーサーを使用する必要がありますか?

$dom = new DomDocument; 
libxml_use_internal_errors(true); 
$dom->loadHTMLFile('http://bingphp.codeplex.com/'); 
$nodes = $dom->getElementsByTagName('form'); 
foreach ($nodes as $node) 
{ 
    echo simplexml_import_dom($node)->asXML(); 
} 

PS

このソフトウェアは、著作権所有者によって提供され、貢献者「現状のまま」、いかなる明示または黙示の保証、を含め、これに限定されないが、OF黙示の保証IS商品性および特定目的への適合性は否認されます。著作権者または寄稿者は、直接的、間接的、偶発的、偶発的、偶発的、偶発的、派生的損害(代替物品またはサービスの調達、使用、データまたは利益の損失を含むが、これに限定されない。 (たとえこのような損害の可能性について知らされていたとしても)、いかなる責任も負いません。また、本ソフトウェアの使用中に生じるいかなる損害についても責任を負わないものとします。

+0

HTML Parserを使用することは、このような質問に対する唯一の解決策です。 – powtac

+0

DomDocumentの使い方は?私はちょうどあなたのコードを使用して、まだ多くの他のHTMLコードを取得します。 – cj333

+0

@ cj333 - あなたはjavascriptで 'form'を探していますか? – ajreal

0

同じフィールドで独自のフォームを作成し、action属性を元のサイトの同じactionのターゲットに変更してみてください。

いつもうまくいくわけではありません。

1

検索ボックスのみが必要な場合はとなります。なぜ自身の検索ボックスを使用していないのですか?

<form action="http://bingphp.codeplex.com/Wiki/Search.aspx" method="GET"> 
    <input type="hidden" name="tab" value="Home" /> 
    <input type="text" name="SearchText" value="PHP" /> 
    <input type="submit" value="Let's vamp the search" /> 
</form> 

私はhidden入力がここで(彼らは彼らの側にそれをチェックすると依存)でなければならないにもわかりません。