2013-09-25 42 views
0
$string = '<img alt="Peachtree St Apartment 2" data-url="http://i.oodleimg.com/item/3472578127t_1m_condos,_townhouses_&amp;_apts_for_sale_in_johnson_city_tn/?1377909664" src="http://i.oodleimg.com/a/animate/spinner-small.gif" class="lazyload-image">'; 

我想提取PHP中的data-url參數。如何從給定的字符串中提取數據url?

+0

你的字符串是空的。 – matewka

回答

5

這是的XPath一項偉大的工作! 不知道XPath是什麼?讓維基百科answer that

的XPath,XML路徑語言是用於從XML文檔選擇節點 的查詢語言。另外,可以使用XPath從XML文檔的內容計算值 (例如,字符串,數字或布爾值)。 XPath由萬維網聯盟(W3C)定義。

因此,對於您的特定用戶的情況下,查詢將是:

//img[@class='lazyload-image']/@data-url 

所以,你可以用它喜歡:

$query("//img[@class='lazyload-image']/@data-url"); 
$xpath->query($query); 

然後你可以自由地遍歷它。我已經採取附加到IMG標籤考慮在這件事情的類,但隨時刪除:

//img/@data-url 

More info on how to use XPath with PHP (DOMXPath) in the manual

+1

Definetly這裏的最佳做法。 – cptnk

+1

subzero,有很好的解釋。 +1 –

+0

非常棒..謝謝 –

0

使用正則表達式,你可以做到以下幾點:

$string = '<img alt="Peachtree St Apartment 2" data-url="http://i.oodleimg.com/item/3472578127t_1m_condos,_townhouses_&amp;_apts_for_sale_in_johnson_city_tn/?1377909664" src="http://i.oodleimg.com/a/animate/spinner-small.gif" class="lazyload-image">'; 
$matches = array(); 
$url = ''; 
if (preg_match('/data-url="([^"]+)"/', $string, $matches)) { 
    $url = $matches[1]; 
} 
+1

我刪除了我的答案;不需要2個相同的答案... –

+0

這真的很友善。謝謝:) – matewka

相關問題