gpt4 book ai didi

PHP get_meta_tags() 没有像我预期的那样工作

转载 作者:行者123 更新时间:2023-12-02 00:39:01 26 4
gpt4 key购买 nike

我想获取元标记(特别是 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
)

PHP 标识符:http://phpfiddle.org/main/code/qe22-3r5n

为什么它没有返回像 og:title、og:description 和 og:image 这样的标签,即使在该 URL 的源代码上也是如此。我该如何纠正这个问题?

最佳答案

那是因为 get_meta_tags 正在寻找 name属性。

The value of the name property becomes the key

您要查找的所有标签都列在 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
)

)

关于PHP get_meta_tags() 没有像我预期的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47851977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com