php - 如何存储og meta标签信息?

标签 php html mysql metadata meta-tags

我正在使用以下 PHP 代码从网页中获取 og:image 属性:

$site_html = file_get_contents($some_url);
$html = new DOMDocument();
$html->loadHTML($site_html);
$meta_og_img = null;

foreach ($html->getElementsByTagName('meta') as $meta) {
    if ($meta->getAttribute('property') == 'og:image') { 
        $meta_og_img = $meta->getAttribute('content');
    }
}

我希望每次加载页面时都需要 og:image 信息,所以最好(就页面加载时间等而言) (1) 获取 每次用户加载页面时从外部网站获取 og:image 或 (2) 一次获取 og:image 并将其存储在我的服务器上?

其次,如果我要将 og:image 图像存储在我的服务器上,我应该如何组织它所在的位置?

例如,如果我需要来自以下网页 URL 的 og:image,我将如何以及在何处将给定的 og:image 存储在我的服务器上:

Link: http://www.huffingtonpost.com/2014/10/20/hong-kong-negotiations-go_n_6016982.html?utm_hp_ref=canada&ir=Canada
og:image: http://i.huffpost.com/gen/2187192/thumbs/o-UMBRELLA-COPS-facebook.jpg

我是否会将 URL 存储在数据库表中并给它一个唯一的 ID,这样 og:image 的服务器目录将类似于:

/var/www/html/og_images/<ID>/image.jpg

谢谢。

最佳答案

是存储好还是每次都获取好:远程信息尽可能多地存储在本地肯定更好。所需的远程调用越多,页面加载时间就越慢。如果您担心拥有最新的图像,那么有多种方法可以在不影响用户体验的情况下异步获取内容。

就存储而言,您可以从多个方向进行处理。您需要确定要存储的图像数量以及空间要求。如果你有足够的磁盘空间,那么你当然可以将图像存储在本地硬盘上,但是你需要考虑随着流量的增加,对服务器的图像请求也会越来越多。

更明智的解决方案是考虑使用像 Amazon S3 这样的解决方案,并直接从他们的 CDN CloudFront 提供静态文件。这样您就不会为了传送静态文件而在您的网络服务器上招致额外的流量。

关于php - 如何存储og meta标签信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26477118/

相关文章:

jquery - 为什么当我尝试将它们放入彼此时,我所有的 JQuery 拖放对象都消失了?

php - Wordpress fancybox 插件不工作

mysql - str_to_date 在我的查询 MYSQL 工作台中不起作用

html - 复选框在 div 标签内不对齐

具有多个选择选项的选择列表中的 PHP 回显

php - TYPO3 流体 xml 渲染

php - 调用前面带美元符号的函数

php - 基于PHP和MYSQL向多个用户发送邮件

php - 在 mysql 中插入类似的值,但使用单个查询多次更改日期列

php - 尝试使用正则表达式从 php 中的 "suburb name"中提取 "12 street name, suburb name, CTG 1234"