0

ページのソースを見ていて、基本的に「og:image」画像の URL を取得したい

私は以下を使用していますが、これは機能します。(相対 URL の問題は別として) すべての不測の事態をカバーしていると思いますが、それを行う最も効率的な方法ではない可能性があります。コードにコメントして、各行が何を行っているかを示しています ($ html はソースコードです):

$og_img = explode( '<meta property="og:image" content=', $html); // strip out beginning
$og_img = explode('>', $og_img[1]); // strip out end
if(substr($og_img[0], -1)=='/'){ $og_img[0] = substr($og_img[0], 0, -1); } // strip / if used /> to close the tag
$og_img[0] = str_replace("'", "", $og_img[0]); // strip ' ... ' apostrophes if used
$og_img[0] = str_replace('"', '', $og_img[0]); // strip " ... " doubke quotes if used

より効率的な方法はありますか?

4

1 に答える 1

0

自分で巻かないでください。

DOMを使用してください。例えば

$doc = new DOMDocument();
@$doc->loadHTML($html);
$metas = $doc->getElementsByTagName('meta');
for ($i = 0; $i < $metas->length; $i++)
{
    $meta = $metas->item($i);
    if($meta->getAttribute('property') == 'og:image')
        $og_image_content = $meta->getAttribute('content');
}

または(試したことはありませんが)使用:

get_meta_tags()
于 2012-08-30T09:41:10.740 に答える