我正在运行一个 PHP 脚本,该脚本从 URL 收集数据并在节点中显示指定的 html 标签。现在我想将此列表保存在我的服务器上并创建一个 js 函数来访问该文件并收集某些数据,例如从第 6 行开始,每隔三个值应放入将要显示的数组中。
所以我想将从 URL 获取的 PHP 数据与我的 js 脚本连接起来,该脚本当前仅显示数组中的静态值,但它应该从我的 PHP 列表中获取这些值。
这是我的 PHP 代码:
$html = file_get_contents("https://www.example.com/link");
$dom = new DOMDocument();
$dom->loadHTML($html);
$nodes = $dom->getElementsByTagName('td');
foreach ($nodes as $node) {
echo $node->nodeValue."<br>"; // return <td> tag data
}
输出如下所示,因为表格只有 3 列
日期
时间
姓名
17.4.26
13:45
一些文字
17.4.26
13:45
一些文字
我希望 js 只获取数组中今天日期的粗体值。 我的想法是将其保存为 xml 文件并创建 js 访问,但这并没有按照我想要的方式工作。有人知道怎么做这个吗? 这是 HTML 表的结构
<table class="xxx"><col style="width: 20%;"/>
<col style="width: 20%;"/><col style="width: 60%;"/>
<thead>
<tr><td>Date</td><td>Time</td><td>Name</td></tr>
</thead>
<tbody>
<tr><td>2017-06-26</td><td>03:06:13</td><td>thetextiwant</td></tr>
<tr><td>2017-06-26</td><td>03:06:13</td><td>thetextiwant</td></tr>
此表将继续另外 1000 个值 然后
</tbody>
</table>
好的,要获取该表结构的每第三列,您可以执行以下操作:
$dom = new DOMDocument();
$dom->loadHTML($html);
$tbodyRows = $dom->getElementsByTagName( 'tbody' )
->item( 0 ) // grab first tbody
->getElementsByTagName( 'tr' );
$result = array();
foreach( $tbodyRows as $tbodyRow )
{
$result[] = $tbodyRow->getElementsByTagName( 'td' )
->item( 2 ) // grab 3rd column
->nodeValue;
}
var_dump( $result );
或(使用 xpath):
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath( $dom );
$thirdColumns = $xpath->query( '//table/tbody/tr/td[3]' );
$result = array();
foreach( $thirdColumns as $thirdColumn )
{
$result[] = $thirdColumn->nodeValue;
}
var_dump( $result );