Я хочу прочитать og:image
метатег из URL. Я хочу использовать get_meta_tags
, но он не возвращает значение для этого метатега.
В чем причина этого и как я могу это решить?
Код
<?php
$tags = get_meta_tags('https://stackoverflow.com/');
?>
<pre>
<?php
print_r($tags);
?>
</pre>
Ввод HTML
<meta property="og:type" content= "website" />
<meta property="og:url" content="https://stackoverflow.com/"/>
<meta property="og:site_name" content="Stack Overflow" />
<meta property="og:image" itemprop="image primaryImageOfPage" content="https://cdn.sstatic.net/Sites/stackoverflow/img/[email protected]?v=73d79a89bded" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:domain" content="stackoverflow.com"/>
<meta name="twitter:title" property="og:title" itemprop="title name" content="Stack Overflow - Where Developers Learn, Share, & Build Careers" />
<meta name="twitter:description" property="og:description" itemprop="description" content="Stack Overflow | The World’s Largest Online Community for Developers" />
Результат
Array
(
[description] => Stack Overflow is the largest, most trusted online community for developers to learn, share their programming knowledge, and build their careers.
[viewport] => width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0
[twitter:card] => summary
[twitter:domain] => stackoverflow.com
[twitter:title] => Stack Overflow - Where Developers Learn, Share, & Build Careers
[twitter:description] => Stack Overflow | The World’s Largest Online Community for Developers
)
Это не сработает.
get_meta_tags
использует name
атрибут метатегов для заполнения ключей массива.
Если вы проверите HTML страницы, с которой пытаетесь получить эти значения, вы увидите это:
<meta property="og:type" content= "website" />
<meta property="og:url" content="https://stackoverflow.com/"/>
<meta property="og:site_name" content="Stack Overflow" />
<meta property="og:image" itemprop="image primaryImageOfPage" content="https://cdn.sstatic.net/Sites/stackoverflow/img/[email protected]?v=73d79a89bded" />
Как видите, ни один из этих тегов не имеет name
атрибута, поэтому функция не может присвоить эти значения любой клавише.
Вам придется использовать другой метод, чтобы получить эти метатеги.
Других решений пока нет …