您好,我想接收数据。数据如下:

Hello, I want to receive the data. The data is as follows:

提问人:Ememy 提问时间:1/22/2022 更新时间:1/22/2022 访问量:32

问:

我想接收数据。 数据如下:

<wec>0 - 0</wec><t2><t>Spor</t></t2><wec>0 - 0</wec>

有两个标签称为 wec。我想获取这些值,但是当我想获取它们时,会显示它们两个的值,但我只想获取第一个 wec 的数量,而不是第二个! 这是如何工作的? 这是我的代码:

include 'simple_html_dom.php';
$get = file_get_html("https://www.example.com");
$list = $get->find('div[class="wecend"]',0);
$list_array = $list->find('wec');

for($i = 0; $i < sizeof($list_array); $i++ ){
    
     echo end($list_array);
}

我也试过这个,但没有用:

for($i = 0; $i < sizeof($list_array); $i++ ){
    
     echo end($list_array[1]);
}

非常感谢您的指导。

php dom html 解析

评论

1赞 arkascha 1/22/2022
当您只想要一个特定的标签(第一个标签)时,为什么要遍历找到的所有标签?
0赞 Ememy 1/22/2022
请指导我 我是新手 我需要更改什么才能只获得一个特定标签
0赞 M. Eriksson 1/22/2022
你不会两者兼而有之。你得到最后一个两次。如果您只想要一个特定的,请不要遍历它们。如果您只想想要第一个,请删除 and just do .该函数用于获取最后一个 .顺便说一句,这个问题与 stackoverflow.com/questions/70803107/ 惊人地相似......,我建议获得最后一场比赛。您有多个帐户吗?foreachecho $list_array[0];end()end()

答:

0赞 gausoft 1/22/2022 #1

我建议您使用可以与 composer 一起安装的simple_html_dom

use voku\helper\HtmlDomParser;

require_once 'vendor/autoload.php';

$html = file_get_contents(__DIR__ . '/page.html');//the param could be an url as well

$dom = HtmlDomParser::str_get_html($html);

$element = $dom->findOne('wec');

$data = $element->text();

print_r($data);//0 - 0

评论

0赞 Nigel Ren 1/22/2022
include 'simple_html_dom.php';是他代码的第一行!