2011-12-17 15 views
1

PHPスクリプトを使用して、Webページ上のすべてのフォーム情報を抽出する方法が必要です。 私は持っています:PHPでHTMLからすべてのフォーム情報を抽出する方法

$ url = "http://somewebpage.com/";

私は必要な情報がある:Webページ上のすべてのフォームのリスト
、などそのオプション/ atributes:
次のようにサンプル出力は次のようになります。

をForm1:フォーム名: "ログイン"、アクション: "login.php"、方法: "テキスト"、名前: "USRNAME"

  • 入力タイプ: "パスワード"、名前: "パス"

    1. 入力タイプを "GET"

    のForm2:フォーム名: "login2"、アクション: "login2.php"、方法: "POST"

    1. 入力タイプ: "テキスト"、名称: "USR"
    2. 入力タイプ: "パスワード"、名前:私は変数に、WebページのHTMLコンテンツを置くために、次の方法を使用し

    "PWD":


    // cURL 
    $browser_id = "some crazy browser"; 
    $curl_handle = curl_init(); 
    $options = array 
    (
    CURLOPT_URL=>$url, 
    CURLOPT_HEADER=>true, 
    CURLOPT_RETURNTRANSFER=>true, 
    CURLOPT_FOLLOWLOCATION=>true, 
    CURLOPT_USERAGENT=>$browser_id 
    ); 
    curl_setopt_array($curl_handle,$options); 
    $server_output = curl_exec($curl_handle); 
    curl_close($curl_handle); 
    

    次に、ヘッダー情報を削除するためにこれを使用し、HTMLの内容をそのまま残してください。それ以外の場合、DOMは常にエラーを表示します。

    $server_output2 = substr($server_output, stripos($server_output, "<html")); 
    

    ザ・フォームを見つけるための私の問題は、閉じられていないタグ、またはその他の情報については、私は多くの場合、DOMからエラーが出ているしかし、私はDOM

    $dom = new DomDocument; 
    $dom->preserveWhiteSpace = FALSE; 
    $dom->loadHTML($server_output2); 
    $params = $dom->getElementsByTagName('form'); // Find Sections 
    $k=0; 
    foreach ($params as $param){ 
    $forms[$k][0] = $params->item($k)->getAttribute('name'); 
    $forms[$k][1] = $params->item($k)->getAttribute('action'); 
    $forms[$k][2] = $params->item($k)->getAttribute('method'); 
    $k++; 
    } 
    

    を使用しています。そして私はこの情報を得たくありません。どうすればそれを動作させることができますか? また、私の現在のコードは、フォーム情報だけを出力します。フォームに入力したものではなく、私も知りたいものです。どうすればこの作品を作れますか?ご協力ありがとうございました。 あなたはhttp://sourceforge.net/projects/rav/files/ でリモートの攻撃ベクトルに(これは私がそれを必要とするものである)私のプロジェクトを表示したり、自分のウェブサイトをチェックアウトすることができますだけでなくhttp://tamasiweb.hu

  • +0

    セットCURLOPT_HEADERを助け

    $uri = "http://anysite.com/form"; $snoopy = new Snoopy; if($snoopy->fetchform($uri)){ $result = $snoopy->results; } echo $result; 

    希望。それはどんなヘッダーも追加しません。 –

    +0

    oh awesome !!!ありがとう!!! –

    答えて

    1

    http://sourceforge.net/projects/snoopy/

    クラスの使用libにこのPHPをダウンロードしてください: falseに

    +0

    私のプロジェクトの特定の目的のために、できるだけ軽量であることが必要ですが、私は別のライブラリを使いたくないのですが、私はすべてのコードを1つのindex.phpファイルに入れたいので、あまりにも多くのコード行を含んでいないようにしてください。しかし、これは多くの助けになるので、私はあなたに感謝しなければならない、私はソースをチェックし、多分いくつかのものを利用する。 :) –

    関連する問題