使用PHP Simple Dom Parser获取指定类SPAN标签值遇问题
解决获取SPAN元素值的问题
看起来你遇到的问题是因为file_get_html返回的DOM元素对象不能直接输出,得先提取它的文本内容才行,我来帮你理清楚:
首先,$url->find('span[class=time-value js-minutes]')这个方法返回的是匹配到的元素数组,不是单个文本值。直接echo或者打印这个数组,就会出现异常内容(比如对象的字符串表示)。
修正后的代码示例
function vakantieVeilingHuidigeTijd($url){ // 获取HTML文档对象 $html = file_get_html($url); // 找到第一个匹配的span元素(第二个参数0表示取第一个结果) $tijdElement = $html->find('span.time-value.js-minutes', 0); // 先检查是否找到元素,避免报错 if($tijdElement){ // 提取元素的纯文本内容 $huidigeTijdMinuut = $tijdElement->plaintext; echo "Minuten te gaan : " . $huidigeTijdMinuut . "<br>"; return $huidigeTijdMinuut; } else { echo "Geen tijd-element gevonden!"; return null; } }
关键说明
- 用
find方法的第二个参数指定索引(比如0),可以直接获取单个匹配元素,而不是数组。 - 要获取元素里的文本,必须用
->plaintext(纯文本,去掉HTML标签)或者->innertext(包含内部HTML标签),根据你的需求选择。 - 一定要加判断:如果页面结构变化或者元素不存在,
$tijdElement会是null,提前判断可以避免后续代码报错。
如果还是有问题,可以先var_dump($html)确认是否成功获取了页面内容,或者var_dump($tijdElement)看看是否真的匹配到了元素。
内容的提问来源于stack exchange,提问作者xNoncombat
相关产品推荐
相关产品推荐

