1

まず最初に、アイデアについて説明したいと思います。CMSや単純なWebサイトには、たとえばワードプレスのメインページにある記事のリストのようなブロックがあり、それぞれが情報のブロックに表示されていることを誰もが知っています。コンテンツ、日付など。したがって、主なアイデアは、HTMLのそのようなブロックを見つけて分離し、それぞれを配列に追加する方法です。私は最初にそれらをクラス、ID、スタイルからクリアする必要があると思いました。 ステップ1:

<div id="box1">
    <h3 class="title_style">Title1</h3>
    <p>content for box1</p>
    <div class="author">Author Name1<span class="style_date">date1<span>any text</div>
</div>
<div id="box2">
    <h3 class="title_style">Title2</h3>
    <p>content for box2</p>
    <div class="author">Author Name2<span class="style_date">date2<span>any text2</div>
</div>

<div>
    <h3>Title1</h3>
    <p>content for box1</p>
    <div>Author Name1<span>date1<span>any text</div>
</div>
<div>
    <h3>Title2</h3>
    <p>content for box2</p>
    <div>Author Name2<span>date2<span>any text2</div>
</div>

ステップ2: 各ブロックを見つけて配列に書き込む必要があるので、次のように各ブロックをテーブルの行に配置できます(このブロックはほとんどすべてのサイトに存在するため、タグを付けるかどうかは関係ありません。持っている、彼らは異なるコンテンツと属性で繰り返すだけで、構造だけが同じです)

<table>
    <tr id="block1">
        <td>Title1</td>
        <td>content for box1</td>
        <td>Author Name1</td>
        <td>date1</td>
        <td>any text</td>
    </tr>
    <tr id="block2">
        <td>Title2</td>
        <td>content for box2</td>
        <td>Author Name2</td>
        <td>date2</td>
        <td>any text</td>
    </tr>
</table>

何か案は ?コード自体ではなく、これを行う方法のロジックが必要です。

4

2 に答える 2

2

PHP の DOMDocument クラスを使用して、ドキュメントの DOM をたどることができます。

したがって、次のようなことができます。

    $str = <<<STR
      <div id="box1">
        <h3 class="title_style">Title1</h3>
        <p>content for box1</p>
        <div class="author">Author Name1<span class="style_date">date1</span>any text</div>
      </div>
      <div id="box2">
       <h3 class="title_style">Title2</h3>
       <p>content for box2</p>
       <div class="author">Author Name2<span class="style_date">date2</span>any text2</div>
      </div>
    STR;

    $dom = new DOMDocument();
    $dom->loadHTML($str);

$divs = $dom->getElementsByTagName('div');

foreach ($divs as $div) {
  //read child elements
}
于 2013-02-25T12:20:32.283 に答える
1

このライブラリSimple HTML Dom Parser を試してください。

于 2013-02-25T12:18:06.123 に答える