2012-01-13 56 views
3

我使用PHP简单的HTML DOM解析器。在我想解析图像的'src'属性的页面被替换为'data-src'。所以,如果我尝试使用下面的代码来获取图像路径,它会返回任何结果:PHP简单的HTML DOM解析器 - 获取元素的连字符属性值

$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; 

有没有人知道如果有可能获得自定义属性的价值,如果是的话,如何才能实现?

感谢您的帮助!

+1

采取找SRC正则表达式构成$ IMG – 2012-01-13 11:52:59

+0

任何线索在正则表达式? – cycero 2012-01-13 11:55:02

+0

感谢您的帮助。用以下正则表达式'$ \ b(https?| ftp | file)抓取源代码:// [-A-Z0-9 +&@#/%?=〜_ |!:,。;] * [-A -Z0-9 + @#/%=〜_ |] $ I”。他们拥有绝对的URL-s。 – cycero 2012-01-13 13:00:03

回答

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

您可以使用此也..

0

感谢您的帮助!

我使用下面的函数一把抓起串的网址:

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-S,我发现是绝对的,只有一个给定的字符串中的URL。

再次感谢提示@Rajat Singhal!

3

反正我是要找到解决这种问题,这里绊倒后,突然有了一个主意。

只是把它放在变量第一:

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

,而不是

$img->data-src; 

使用

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

here

相关问题