2012-01-13 55 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

相關問題