2012-12-07 94 views
1

我有一個示例代碼:從第一個圖像使用PHP獲取src時出錯?

$content = 'I have a image <img border="0" alt="581.jpg - 58.03 KB" src="581.jpg">'; 

和PHP

preg_match('/<img.+src=[\'"](?P<src>.+)[\'"].*>/i', $content, $image); 
echo $image[0]; 

結果爲:581.jpg" border="0" alt="581.jpg -,如何解決呢?

+0

你好是我的回答解決你的問題?對你有幫助嗎? –

回答

1

爲此寫一個正則表達式是有問題的,至少可以這樣說。我會建議使用此:

$dom = new DOMDocument; 
$dom->loadHTML($content); 
foreach ($dom->getElementsByTagName('img') as $node) { 
    echo $node->getAttribute('src') . PHP_EOL; 
} 

說明:

爲什麼你不應該使用正則表達式你想要的東西是,對HTML標記不同的原因。 src屬性的位置可能不同,它可能使用單引號而不是雙引號(某些HTML屬性不需要引號,例如,此語法是正確的:<img class=logo />),它可能是大寫字母,可能還有其他問題,現在想想吧。

額外的信息: