2011-08-05 9 views
0

私が最近したことは、特定のhtmlファイルからリスティング情報を抽出することです。PHP> htmlファイルからhtmlデータを抽出していますか?

例えば、私は電話番号、住所などの多くの会社のリストを持つhtmlページを持っています<table border="0">

私はtxtファイルにそれを置くように、すべての情報を取得するためにPHPを使用して、後でそれを使用しようとした、または '

各企業がそれ自身のテーブルにある、すべてのテーブルには、そのように開始しましたデータベースにインポートするだけです。

私は自分の目標を達成するための方法は、あなたたちはここに私を助けることができれば、私は感謝、

を私は本当にPHPでの問題を持っているものの一つである正規表現を使用していることを前提としています。 (私は何を探したらよいか、それともちょっと助けてくれるかもしれない何か、完全なコードではない)

ありがとうございました!!

+0

を使用して解析することができます。チェックアウト:http://stackoverflow.com/questions/3577641/best-methods-to-parse-html-with-php –

+1

HTMLを解析するためにREGEXを使用しないでください!!! –

答えて

4

私はPHP DOMDocumentを見て、正規表現ではなく実際のHTMLパーサを使ってファイルを解析することをお勧めします。

GetElementsByTagNameメソッドのように、テーブルを取得する方法は非常に簡単です。


<?php 

    $htmlCode = /* html code here */ 

    // create a new HTML parser 
    // http://php.net/manual/en/class.domdocument.php 
    $dom = new DOMDocument(); 

    // Load the HTML in to the parser 
    // http://www.php.net/manual/en/domdocument.loadhtml.php 
    $dom->LoadHTML($htmlCode); 

    // Locate all the tables within the document 
    // http://www.php.net/manual/en/domdocument.getelementsbytagname.php 
    $tables = $dom->GetElementsByTagName('table'); 

    // iterate over all the tables 
    $t = 0; 
    while ($table = $tables->item($t++)) 
    { 
    // you can now work with $table and find children within, check for 
    // specific classes applied--look for anything that would flag this 
    // as the type of table you'd like to parse and work with--then begin 
    // grabbing information from within it and treating it as a DOMElement 
    // http://www.php.net/manual/en/class.domelement.php 
    } 
0

あなたはjQueryのに慣れている(と、それは命令だとしてあなたがいない方にも十分に簡単です)なら、私はこのPHPの対応をお勧めします:あなたのHTMLが有効なXMLである場合は、http://code.google.com/p/phpquery/

関連する問題