PHP简单的HTML DOM解析器 - 获取元素的连字属性值

时间:2012-01-13 11:48:35

标签: php parsing

我正在使用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;

有人知道是否可以获得自定义属性的值,如果是,那该怎样才能实现?

感谢您的帮助!

4 个答案:

答案 0 :(得分:3)

无论如何,我正要找到解决这类问题的方法,然后在这里磕磕绊绊突然想到了。

首先把它放在变量中:

$dataSrc='data-src';
$item['image'] = $img->$dataSrc;

答案 1 :(得分:3)

而不是

 $img->data-src;

使用

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

取自here

答案 2 :(得分:1)

<?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];
?>

您也可以使用它..

答案 3 :(得分: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提示!