0

シンプルなhtml domパーサーを使用して、html文字列から一部のデータをスクラップします。
各 TD を配列要素として特定の css クラスを持つテーブルから TD の値を返す必要があります。
このタラを試しましたが、胎児エラーが発生します。

<?php
include('classes/simple_html_dom.php');
$html = str_get_html('<table class="pages_navigator">
<tr>
<th style="width:50px;">ID </th>
<th>Business </th>
<th style="width:70px;">Category</th>
<th style="width:50px;">Phone </th>
<th style="width:70px;">State</th>
<th style="width:70px;">City</th>
<tr class="users_tr">
<td>3571</td>
<td>Premium GD</td>
<td>2063199876</td>
<td>Washington</td>
<td>Seattle</td>
<td>3703</td>
</tr>
</table>');
$tds = $html->find('table.pages_navigator')->find('td') ;
print_r($tds);
?>

それから私は試しました

<?php
    include('classes/simple_html_dom.php');
    $html = str_get_html('<table class="pages_navigator">
    <tr>
    <th style="width:50px;">ID </th>
    <th>Business </th>
    <th style="width:70px;">Category</th>
    <th style="width:50px;">Phone </th>
    <th style="width:70px;">State</th>
    <th style="width:70px;">City</th>
    <tr class="users_tr">
    <td>3571</td>
    <td>Premium GD</td>
    <td>2063199876</td>
    <td>Washington</td>
    <td>Seattle</td>
    <td>3703</td>
    </tr>
    </table>');
    $result = array();
    foreach($html->find('tr.users_tr') as $e){
    $result[] = $e->plaintext . '<br>';
    }
    print_r($result);
?>

最後のものはうまくいきましたが、すべての TD を単一の文字列としてもたらします。配列要素としての各 td はありませんか? var_dump の結果

Array ( 
[0] => 3571 Premium GD 2063199876 Washington Seattle 3703 
)
4

1 に答える 1

2

クエリを次から変更します

foreach($html->find('tr.users_tr') as $e){

foreach($html->find('tr.users_tr td') as $e){

これにより、行全体のプレーン テキストを取得する代わりに、すべての td を反復処理できるようになります。

于 2013-07-17T04:43:37.473 に答える