2012-12-05 83 views
1

我正在尋找使用PHP從錨鏈接中提取圖像href值。請參見下面的說明:使用PHP從錨鏈接中提取圖像href值

開始:

<a href="http://someimagelink.com/image34.jpg">image34.jpg</a> 

目標:

http://someimagelink.com/image34.jpg 

更具體地說,我怎麼去掉的<a href="">image34.jpg</a>所以它的工作原理與給定的任何圖像?

+0

因此,你正試圖解析一個傳遞的HTML文件? –

+0

是的,這是正確的 – JCHASE11

回答

2

您也可以使用Simple HTML DOM Parser這樣的:

$html = file_get_html('http://www.google.com/'); 

// Find all images 
foreach($html->find('img') as $element) 
    echo $element->src . '<br>'; 
+0

這很好,謝謝。 – JCHASE11

+0

很高興幫助。 –

+0

如何引用當前頁面而不是指定絕對URL?我指的是html變量。 – JCHASE11

0

約做這樣的事情是什麼?我不確定這是否是一個好的解決方案或不...思想?

$html = "<a href='http://www.imagelink.com/images33.jpg'>images33.jpg</a>"; 
preg_match_all('/href=[\'"]?([^\s\>\'"]*)[\'"\>]/', $html, $matches); 
$hrefs = ($matches[1] ? $matches[1] : false); 
$url = implode('',$hrefs); 
echo "<a href='$url'><img src='$url' width='100'></a>" ; 
+0

你不應該使用正則表達式,因爲用正則表達式解析HTML或XML(這不是常規語言)通常是一個壞主意。在這裏閱讀更多:http://stackoverflow.com/questions/701166/can-you-provide-some-examples-of-why-it-is-hard-to-parse-xml-and-html-with-a-註冊 – poplitea

+0

是的,解析HTML內容絕對是一個壞主意,但它的工作原理和如此簡單....但我明白這不應該做的。我將嘗試使用DOM解析器。 – JCHASE11

0

您可以使用PHP DOMDocument來獲取所需內容。代碼看起來像這樣:

$dom_doc = DOMDocument::loadHTML($html_string); 
$a_tag_node_list = $dom_doc->getElementsByTagName('a'); 
foreach($a_tag_node_list as $a_tag_node) { 
    echo $a_tag_node->attributes->getNamedItem("href")->nodeValue; 
}