PHP简单HTML DOM解析器-获取元素';s带连字符的属性值


PHP Simple HTML DOM Parser - get element's hyphenated attribute value

我使用的是PHP Simple HTML DOM Parser。在我想要解析的页面中,图像的"src"属性被替换为"data src"。因此,如果我尝试使用以下代码获取图像路径,它将不会返回任何结果:

$elimage = $offer->find('div.photo', 0);
$im = $elimage->last_child('a');
$img = $im->last_child('img');
$item['image'] = $img->src;

我试过这样做,但也不起作用:

$elimage = $offer->find('div.photo', 0);
$im = $elimage->last_child('a');
$img = $im->last_child('img');
$item['image'] = $img->data-src;

有人知道是否可以获得自定义属性的值吗?如果可以,如何实现?

谢谢你的帮助!

而不是

 $img->data-src;

使用

$img->{'data-src'};

从这里获取

无论如何,我正要找到这类问题的解决方案,却在这里跌跌撞撞,然后突然想到了一个主意。

先把它放在变量中:

$dataSrc='data-src';
$item['image'] = $img->$dataSrc;
<?php
$str= "<a data-src='http://google.com'>Hello</a>";
$var=preg_split("/data-src=''/",$str);
//echo $var[1];
$var1=preg_split("/''/",$var[1]);
echo $var1[0];
?>

你也可以使用这个。。

感谢您的帮助!

我使用以下函数从字符串中获取URL:

function checkURL($str) {
    $regex = '$'b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]$i';
    preg_match_all($regex, $str, $result, PREG_PATTERN_ORDER);
    $A = $result[0];
    foreach($A as $a) {
        $retval .= $a; 
    }
    return $retval;
}

我找到的URL是绝对的,并且在给定的字符串中只有一个URL。

再次感谢Rajat Singhal的提示!