高级 PHP 图像共享。从数据库到 Facebook 墙?

Posted

技术标签:

【中文标题】高级 PHP 图像共享。从数据库到 Facebook 墙?【英文标题】:Advanced PHP image sharing. From a DB to Facebook wall? 【发布时间】:2012-01-27 01:19:28 【问题描述】:

我正在尝试通过直接使用我的数据库中的图像来集成 facebook 共享。

使用OG标签的静态图片:

<meta property="og:image" content="http://X.com/image.jpg" />"

工作正常。

但是,我的图像不是静态的,它们是从我的数据库中调用的:

echo "<img src=\"pic.php?id=".$id."\"/>";

图片在我的网站上渲染得很好,但 facebook 分享却没有显示出来。

那么我认为合乎逻辑的事情就是这样做:

echo "<meta property=\"og:image\" content=\"http://X.com/pic.php?id=".$id."\"/>";

很遗憾,这不起作用。

有什么想法吗?

【问题讨论】:

【参考方案1】:

我建议你使用 URL 重写来创建一个友好的 URL,例如

http://x.com/pic/id

如果您使用的是 Apache,那将是一个 .htaccess 文件(假设您启用了 mod_rewrite),类似于:

RewriteEngine on
RewriteRule ^pic/([^/\.]+)/?$ /pic.php?url=$1 [L]

【讨论】:

我尝试了您的解决方案:x.com/pic/id 显示正确的图像。但是,更改: echo "X.com/pic.php?id=".$id."\"/>"; 为: echo "X.com/pic/".$id."\"/>";不帮助 facebook 刮图像。使用调试工具,facebook 对原始 URL 或重写没有任何问题。元标记:X.com/pic/123" /> 我仍在寻找从数据库调用中抓取图像的解决方案。【参考方案2】:

我使用 asp 时遇到同样的问题 通过 asp 脚本从 mysql blob 字段中检索图像。 调试器显示图像并且没有给出错误,但页面上的按钮不获取图像。 它应该与缓存无关,因为它是一个全新的页面。

页面:http://www.ffkama.be/html/2_agenda_detail.asp?ps=id51

图片网址:http://www.ffkama.be/root/imager_ag.asp?id=51

更新:我忘记了 HEAD TAG 中的代码 :( 可以肯定的是,没有 'prefix="og: ht tp://ogp.me/ns# fb: ht tp://ogp.me/ ns/fb# 网站:ht tp://ogp.me/ns/website#"' 在 HEAD 标记中,调试器不会给出错误,并且图像显示在调试器中,但图像不会显示在您的页面上。然后页面被缓存,只有两种解决方案:1.重命名页面2.等待几天缓存过期

【讨论】:

您无需等待几天。只需使用 facebook 调试器工具查看 facebook 在您的页面上看到的内容:developers.facebook.com/tools/debug

以上是关于高级 PHP 图像共享。从数据库到 Facebook 墙?的主要内容,如果未能解决你的问题,请参考以下文章

Android 图像共享到 ImageShack 站点

腾讯云高级研究员讲述,从成像到图像分析如何入门

具有共享高级磁盘的 Azure 虚拟机 - 看不到数据

facebook内的iframe分享

帮助从 SQL Server 读取二进制图像数据到 PHP

将图像从 URL 保存到库,重命名并使用 Swift 共享它