php:如何将刮取的 html 分配给数组

php: how to assign scraped html to array

我想格式化以下 php 脚本的输出:

 <?php

$stop = $_POST["stop_number"];  // stop_number is an text input value provided by user
$depart_url = "http://64.28.34.43/hiwire?.a=iNextBusResults&StopId=" . $stop;
$html = file_get_contents($depart_url);
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

$my_xpath_query = "//td[@valign='top']";
$result = $xpath->query($my_xpath_query);

foreach($result as $result_object)
{
    echo $result_object->childNodes->item(0)->nodeValue,'<br>';
}

?>

这是输出(至少在一个实例中,数据随时间变化)。

18 - GOLD
OUTBOUND
8:17p
8:16p
8 - GREEN 
OUTBOUND
8:46p
8:46p
8 - GREEN 
OUTBOUND
18 - GOLD
OUTBOUND
5 - PLUM
OUTBOUND

编辑:

我希望上面的输出信息进入 table,如下所示。但是,它不是标签之间的文本,而是变量,或者来自 php 脚本输出的项目。

<!DOCTYPE html>
<html>
<title>Departure Table</title>

<body>
<h4>Next Departures for Stop Number: __ </h4>
<table border="1px solid black">
    <tr>
        <th>Route</th>
        <th>Direction</th>
        <th>Scheduled</th>
        <th>Estimated</th>
    </tr>
    <tr>
        <td>18 - Gold</td>
        <td>Outbound</td>
        <td>8:17p</td>
        <td>8:16p</td>
    </tr>
    <tr>
        <td>8 - Green</td>
        <td>Outbound</td>
        <td>8:46p</td>
        <td>8:46p</td>
    </tr>
</table>
</body>
</html>

尝试在回显语句后附加一个 \n 标签:

    echo $result_object->childNodes->item(0)->nodeValue."\n";

编辑:

如果您想将数据存储在 PHP 个变量中,您可以这样做:

将数据存储在数组中,例如变量(或根据需要的任何其他数据结构)并迭代变量。

$store_data_in_array_variable = array();

foreach($result as $result_object)
{
    $store_data_in_array_variable[] = $result_object->childNodes->item(0)->nodeValue;

}

//iterate over all stored values

foreach ($store_data_in_array_variable as $key => $value) 
{
    echo $key;
    echo '<br>';
    echo $value;
}