2017-06-16 7 views
0

画像PHPはOGを取得することはできません。ウェブサイトから画像タグ:私はOGを得るために、このスクリプトを使用してい

function getFrontImage($url){ 
    $page_content = file_get_contents($url); 

    $dom_obj = new DOMDocument(); 
    $dom_obj->loadHTML($page_content); 
    $meta_val = null; 

    foreach($dom_obj->getElementsByTagName('meta') as $meta) { 

    if($meta->getAttribute('property')=='og:image'){ 

     $meta_val = $meta->getAttribute('content'); 
    } 
    } 

    return $meta_val; 
} 

しかし、これが唯一のいくつかのウェブページ上で動作するようです。次のリンクからイメージタグ:たとえば、私はOG得ることができますhttp://lietuvosdiena.lrytas.lt/aktualijos/2017/06/16/news/partnerystei-nepritare-konservatoriai-sulauke-liberalu-kircio-1702264/

をしかし、私は、このリンクからそれを得ることができない:私は

をunderstanとして、彼らはどのような方法で異なっていないので、 http://sportas.lrytas.lt/krepsinis/2017/06/16/news/martynas-pocius-del-traumu-baigia-karjera-1703843/奇妙です
+0

私は両方のURLのためにあなたのコードを試してみて、働いていた..あなたは、2番目のURLに –

+0

何を取得、私は次の警告を得る結果と何: 警告:のDOMDocument :: loadHTML()ここでは、最終的なコードです[domdocument.loadhtml]:エンティティのCDATA 0x1Fの無効な文字 警告:DOMDocument :: loadHTML()[domdocument.loadhtml]:エンティティのCDATA 0x8の無効な文字 – Martis

答えて

0

私はカールを使用して私の問題を解決しました。

function getFrontImage($url){ 

libxml_use_internal_errors(true); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0'); 
curl_setopt($ch, CURLOPT_ENCODING , "gzip"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 


$page_content = curl_exec($ch); 

$dom_obj = new DOMDocument(); 
$dom_obj->loadHTML($page_content); 
$meta_val = null; 

foreach($dom_obj->getElementsByTagName('meta') as $meta) { 

if($meta->getAttribute('property')=='og:image'){ 

    $meta_val = $meta->getAttribute('content'); 

} 




} 

return $meta_val; 
} 
関連する問題