2013-07-03 23 views

回答

3
$content=file_get_contents($url); 
if (preg_match("/<img.*src=\"(.*)\".*class=\".*pinit\".*>/", $content, $matches)) 
{ 
echo "Match was found <br />"; 
echo $matches[0]; 
} 

$ matches [0]將打印整個圖像標籤。 如果你想只提取URL,那麼你可以使用$匹配[1]與您的情況下獲得相同的:)

+0

我試圖做同樣的「http://techcrunch.com/2014/05/09/facebook-is-down-for-many/」,但它不會返回任何東西。我知道位於這裏:但即使經過很少的改變它不會返回任何東西。任何幫助都會很好_/\ _ –

+0

該正則表達式對於特定網頁中的模式非常具體。 試試這個。 如果(的preg_match(「/ 」; 回聲$比賽[0]; } 工作:正則表達式將在搜索圖像標籤內的src屬性去,然後提取假定圖像URL是在雙引號內 您可以根據您的要求修改它。 –

1

你可以/必須分析與DOM的HTML,這裏是例子:

$curlResource = curl_init('http://www.huffingtonpost.it/2013/07/03/stupri-piazza-tahrir-durante-proteste-anti-morsi_n_3538921.html?utm_hp_ref=italy'); 
curl_setopt($curlResource, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curlResource, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curlResource, CURLOPT_AUTOREFERER, true); 

$page = curl_exec($curlResource); 
curl_close($curlResource); 


$domDocument = new DOMDocument(); 
$domDocument->loadHTML($page); 

$xpath = new DOMXPath($domDocument); 

$urlXpath = $xpath->query("//img[@id='img_caption_3538921']/@src"); 

$url = $urlXpath->item(0)->nodeValue; 

echo $url; 

花點時間學習一點DOM和XPATH是值得的。

1

嘗試......

$content=file_get_contents($url); 
if (preg_match("/src=[\"\'][^\'\']+[\"\']/", $content, $matches)) 
{ 
    echo "Match was found <br />"; 
    echo $matches[0]; 
}