Я хотел получить метатеги (особенно og: title, og: description и og: image) …
Я использую следующий код,
$tags = get_meta_tags('https://www.shoutmeloud.com/review-of-hostgator-webhosting-wordpress.html/');
echo "<pre>";
print_r($tags);
Возвращает следующий массив,
Array
(
[viewport] => width=device-width, initial-scale=1
[description] => Check out HostGator review for year 2017. This review if written after using Hostgator for 5 years. Is Hostgator Good hosting? Find out answer here
[twitter:card] => summary_large_image
[twitter:description] => Check out HostGator review for year 2017. This review if written after using Hostgator for 5 years. Is Hostgator Good hosting? Find out answer here
[twitter:title] => A Blogger Review of HostGator Shared Hosting Plan
[twitter:site] => @shoutmeloud
[twitter:image] => https://www.shoutmeloud.com/wp-content/uploads/2014/08/Review-of-Hostgator-Shared-Hosting-Plan.jpg
[twitter:creator] => @denharsh
[generator] => Easy Digital Downloads v2.8.14
[msapplication-tileimage] => https://www.shoutmeloud.com/wp-content/uploads/2017/12/cropped-favicon-270x270.png
)
PHPFidlle: http://phpfiddle.org/main/code/qe22-3r5n
Почему не возвращаются такие теги, как og:title, og:description and og:image
даже они находятся в исходном коде этого URL. Как я могу исправить эту проблему?
Это потому что get_meta_tags
ищет name
приписывать.
Значение название собственность становится ключом
Все теги, которые вы ищете, перечислены под property
приписывать.
Если вы являетесь владельцем исходной страницы, вы можете просто добавить name
атрибут для элементов с тем же значением, что и property
приписывать.
Если нет, то вы могли бы использовать что-то вроде DOMDocument
в сочетании с file_get_contents
или же curl
чтобы получить конкретные значения, которые вас интересуют.
Например:
<?php
$content = file_get_contents('https://www.shoutmeloud.com/review-of-hostgator-webhosting-wordpress.html');
$doc = new DOMDocument();
// squelch HTML5 errors
@$doc->loadHTML($content);
$meta = $doc->getElementsByTagName('meta');
foreach ($meta as $element) {
$tag = [];
foreach ($element->attributes as $node) {
$tag[$node->name] = $node->value;
}
$tags []= $tag;
}
print_r($tags);
Результаты в:
Array ( [0] => Array ( [charset] => UTF-8 ) [1] => Array ( [name] => viewport [content] => width=device-width, initial-scale=1 ) [2] => Array ( [name] => description [content] => Check out HostGator review for year 2017. This review if written after using Hostgator for 5 years. Is Hostgator Good hosting? Find out answer here ) [3] => Array ( [property] => og:locale [content] => en_US ) [4] => Array ( [property] => og:type [content] => article ) [5] => Array ( [property] => og:title [content] => A Blogger Review of HostGator Shared Hosting Plan ) [6] => Array ( [property] => og:description [content] => Check out HostGator review for year 2017. This review if written after using Hostgator for 5 years. Is Hostgator Good hosting? Find out answer here ) [7] => Array ( [property] => og:url [content] => https://www.shoutmeloud.com/review-of-hostgator-webhosting-wordpress.html ) [8] => Array ( [property] => og:site_name [content] => ShoutMeLoud ) [9] => Array ( [property] => article:publisher [content] => https://www.facebook.com/shoutmeloud ) [10] => Array ( [property] => article:author [content] => https://www.facebook.com/denharsh ) [11] => Array ( [property] => article:tag [content] => hostgator ) [12] => Array ( [property] => article:tag [content] => Review ) [13] => Array ( [property] => article:tag [content] => WordPress Webhosting ) [14] => Array ( [property] => article:section [content] => Webhosting ) [15] => Array ( [property] => article:published_time [content] => 2016-08-18T15:51:46+05:30 ) [16] => Array ( [property] => article:modified_time [content] => 2017-11-29T23:50:31+05:30 ) [17] => Array ( [property] => og:updated_time [content] => 2017-11-29T23:50:31+05:30 ) [18] => Array ( [property] => fb:admins [content] => 100000563323286 ) [19] => Array ( [property] => og:image [content] => https://www.shoutmeloud.com/wp-content/uploads/2014/08/Review-of-Hostgator-Shared-Hosting-Plan.jpg ) [20] => Array ( [property] => og:image:secure_url [content] => https://www.shoutmeloud.com/wp-content/uploads/2014/08/Review-of-Hostgator-Shared-Hosting-Plan.jpg ) [21] => Array ( [name] => twitter:card [content] => summary_large_image ) [22] => Array ( [name] => twitter:description [content] => Check out HostGator review for year 2017. This review if written after using Hostgator for 5 years. Is Hostgator Good hosting? Find out answer here ) [23] => Array ( [name] => twitter:title [content] => A Blogger Review of HostGator Shared Hosting Plan ) [24] => Array ( [name] => twitter:site [content] => @shoutmeloud ) [25] => Array ( [name] => twitter:image [content] => https://www.shoutmeloud.com/wp-content/uploads/2014/08/Review-of-Hostgator-Shared-Hosting-Plan.jpg ) [26] => Array ( [name] => twitter:creator [content] => @denharsh ) [27] => Array ( [name] => generator [content] => WordPress 4.9.1 ) [28] => Array ( [name] => generator [content] => Easy Digital Downloads v2.8.14 ) [29] => Array ( [property] => fb:pages [content] => 94019601674 ) [30] => Array ( [name] => msapplication-TileImage [content] => https://www.shoutmeloud.com/wp-content/uploads/2017/12/cropped-favicon-270x270.png ) [31] => Array ( [content] => Hostgator [itemprop] => name ) [32] => Array ( [content] => 1 [itemprop] => worstRating ) [33] => Array ( [content] => 4.5 [itemprop] => ratingValue ) [34] => Array ( [content] => 5 [itemprop] => bestRating ) [35] => Array ( [content] => Hostgator [itemprop] => name ) )
Других решений пока нет …