无法使用简单的 HTML DOM 访问 PHP 中带有破折号的属性值
Unable to access value of attribute with dash in PHP using simple HTML DOM
我正在尝试使用 PHP 简单 HTML DOM 获取一些 html 值并将它们存储在 PHP 数组中。
在 HTML 页面内,我想要 parse/fetch 以下内容 :
<li id="1" data-name="Jason" class="result-names">
<li id="2" data-name="John" class="result-names">
<li id="3" data-name="Elco" class="result-names">
<li id="5" data-name="Dana" class="result-names">
我能够捕获到"id"值和"class"值,但此时我似乎无法获取"data-name"的值。我用于尝试实现此目的的代码:
<?php
require_once('simple_html_dom.php');
$dom = file_get_html('http://localhost/names.html');
foreach($dom->find('li[class=result-names]') as $results) {
$item['id'] = $results->id;
$item['name'] = $results->data-name; //this does not work
$item['class'] = $results->class;
$articles[] = $item;
}
echo "<pre>";
print_r($articles);
echo "</pre>";
使用:
$item['name'] = $results->getAttribute("data-name");
-
是减法运算符,它不能用作标识符的一部分。你写的内容被解析为:
$item['name'] = ($results->data) - name;
试一试:
$item['name'] = $results->attr['data-name'];
我正在尝试使用 PHP 简单 HTML DOM 获取一些 html 值并将它们存储在 PHP 数组中。
在 HTML 页面内,我想要 parse/fetch 以下内容 :
<li id="1" data-name="Jason" class="result-names">
<li id="2" data-name="John" class="result-names">
<li id="3" data-name="Elco" class="result-names">
<li id="5" data-name="Dana" class="result-names">
我能够捕获到"id"值和"class"值,但此时我似乎无法获取"data-name"的值。我用于尝试实现此目的的代码:
<?php
require_once('simple_html_dom.php');
$dom = file_get_html('http://localhost/names.html');
foreach($dom->find('li[class=result-names]') as $results) {
$item['id'] = $results->id;
$item['name'] = $results->data-name; //this does not work
$item['class'] = $results->class;
$articles[] = $item;
}
echo "<pre>";
print_r($articles);
echo "</pre>";
使用:
$item['name'] = $results->getAttribute("data-name");
-
是减法运算符,它不能用作标识符的一部分。你写的内容被解析为:
$item['name'] = ($results->data) - name;
试一试:
$item['name'] = $results->attr['data-name'];