0

私が持っているいくつかのhtmlページからいくつかのデータを取得し、データベースにデータを保存したいと思います。

HTMLファイルにはブログのリストがあり、ブログは次のように構成されています。

 <div class="breadlist"></div>    

    <h3 class="list"><a href="http://test1.com">Title 1</a></h3>
    <p><strong>Description:</strong> Description 1.<br>
    <strong>Author:</strong> Author1<br>
    <strong>XML:</strong> <a href="http://test1.com/feed">Title 1</a><br>
    <strong>Language:</strong> Language1</p>

    <h3 class="list"><a href="http://test2.com">Title 2</a></h3>
    <p><strong>Description:</strong>Description 2. <br>
    <strong>Author:</strong> Author1<br>
    <strong>XML:</strong> <a href="http://test2.com/feed">Title 2</a>  
    <strong>Language:</strong> Español</p>

<div class="breadlist"></div>

この例では、2つのブログがありますが、10または100のブログがある場合もあります。すべてのファイルには異なる量があります。このデータを取得したい:

Website Address, Title, Description, Author, Feed, Language.

PHP Simple HTML DOM Parserでそれをやろうとしていましたが、今日は初めてで、どこにも行けませんでした。私は何かをループする必要があると思いますが、それを行う方法がわかりません。誰かがPHPでそれを行う方法を知っていますか?ありがとう!

----編集---- これは私がこれまでに試したことです:

$str = <<<HTML
<div class="breadlist"></div>    

    <h3 class="list"><a href="http://test1.com">Title 1</a></h3>
    <p><strong>Description:</strong> Description 1.<br>
    <strong>Author:</strong> Author1<br>
    <strong>XML:</strong> <a href="http://test1.com/feed">Title 1</a><br>
    <strong>Language:</strong> Language1</p>

    <h3 class="list"><a href="http://test2.com">Title 2</a></h3>
    <p><strong>Description:</strong>Description 2. <br>
    <strong>Author:</strong> Author1<br>
    <strong>XML:</strong> <a href="http://test2.com/feed">Title 2</a>  
    <strong>Language:</strong> Español</p>

<div class="breadlist"></div>
HTML;

$html = str_get_html($str);
    foreach($html->find('h3[class=list]') as $title){
       echo "Title: " . $title->innertext . "<br />";
    }
    foreach($html->find('h3[class=list] a') as $address){
       echo "Address: " . $address->href . "<br />";       
}
 foreach($html->find('p') as $description){

       echo "Description: " . $description->childNodes(3)->plaintext . "<br />"; //doesnt work
 }
 foreach($html->find('p a') as $feed){
       echo "Feed: " . $feed->href . "<br />";       
}
 foreach($html->find('h3[class=list] a') as $language){
       echo "Language: " . $language->innertext . "<br />"; // doesnt work       
}
4

2 に答える 2

0

それを行う方法が見つからなかったので、PHP Simple HTML DOM Parser を使用できる方法で検索、置換、および変更を行いました

于 2012-08-08T20:49:27.770 に答える
0

strip_tagsを使用します。

echo strip_tags($html_text);

HTML コードでデータが常に同じ順序になっている場合は、それで十分な場合があります。

于 2012-08-03T18:23:22.003 に答える