Простой HTML DOM не может получить первый TD в TR - PullRequest
0 голосов
/ 17 января 2019

У меня проблемы с анализом таблицы с помощью PHP Simple HTML DOM Parser 1.81 от SourceForge.У меня есть PHP 7.1.Я сделал этот тест, чтобы объяснить мою проблему.

У меня есть этот HTML-файл test.html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div class="workers">
            <table>
                <tr>
                    <td>Bob</td>
                    <td>Plumber</td>
                </tr>
                <tr>
                    <td>Jane</td>
                    <td>Lawyer</td>
                </tr>
            </table>
        </div>
    </body>
</html>

Вот мой код PHP:

<?php
require('simple_html_dom.php');
// Create DOM from URL or file
$html = file_get_html('test.html');

// creating an array of elements
    $table = $html->find('table',0);

    foreach($table->find('tr') as $row) {

        $rowKey = $row->find('td',0)->plaintext;

        var_dump($row_key);

        $value = $row->find('td',1)->plaintext;

        var_dump($value);

        echo "rowkey=".$rowkey;
        echo "value=".$value;
        echo "<br>";
    } 
?>

Явозникли проблемы с получением значения первого td для строки с именем $ rowkey в моем примере.Возвращается ноль.

Буду признателен за любую помощь или совет.Спасибо.

1 Ответ

0 голосов
/ 17 января 2019

Вы используете rowKey, row_key и rowkey. Мой совет - выбрать одно имя переменной и придерживаться его: -)

Более серьезно, ни var_dump, ни echo не будут использовать переменную, которую вы установили для хранения ссылки DOM. Вместо этого они будут использовать какое-то другое значение, которое в данном случае представляется неинициализированным.

Если вы измените их все на rowKey (или другое, если хотите), оно должно работать нормально.

...