【问题标题】:How to share a link with image and description on custom website in PHP [closed]如何在 PHP 中的自定义网站上共享带有图像和描述的链接 [关闭]
【发布时间】:2012-08-13 15:50:32
【问题描述】:

如何在 PHP 中的自定义网站(如linkedin、facebook)上共享带有图像和描述的链接。

如果用户分享任何有效链接,它会显示带有 facebook 和 linkedin 等描述的图片。

【问题讨论】:

  • 实施的哪个特定部分有问题?
  • 是的,我试过了,但我没有像 facebook 或 linkedin。

标签: php jquery


【解决方案1】:

您想了解 Facebook Open Graph 元标记。它们允许您编辑共享帖子的呈现方式。更多信息可以在这篇文章中找到http://davidwalsh.name/facebook-meta-tags

【讨论】:

  • 我想阅读任何网址并在我的网站上显示我的墙贴。
  • 啊...好吧,所以你想使用 fopen 或 curl 来获取你感兴趣的页面的 HTML 并解析 HTML。
  • 如果用户在他们的墙上发布任何链接,我会在我的网站上寻找相同的功能,例如 facebook wall 或 linkedin。
【解决方案2】:

您需要获取给定 URL 的内容,可能使用file_get_contents 或类似的方法(例如:this)并解析此 URL 的内容。

让我们尝试一个非常基本的例子;

$url = get_url_from_user_post($user_post);
// get page contents (as html)
$page_contents = file_get_contents($url);

// search for title
// option 1
preg_match('~<meta\s+property="og:title"\s+content="(.*?)".*?>~um', $page_contents, $matches);
// option 2
preg_match("~<title>(.*)</title>~um", $page_contents, $matches);

$page_title = trim($matches[1]);

// search for an image
// option 1
preg_match('~<meta\s+property="og:image"\s+content="(.*?)".*?>~um', $page_contents, $matches);
// option 2
preg_match_all('~<img.*?src="(.*?)".*?>~um', $page_contents, $matches);
if (!empty($matches)) {
    // ... and get one of them

你有更多的选择来做这件事,获取/解析页面的 html 内容。请参阅:http://php.net/manual/en/book.dom.php,或使用 PHP (get_meta_tags) 获取元标记。

【讨论】:

    【解决方案3】:

    好的,我得到的是您想要获取用户链接到的站点的图像和基本描述。

    要获取描述,最简单的方法是使用php中的get_meta_tags函数,并使用描述。

    $meta = get_meta_tags($some_url); 
    //description will be stored in $meta['description'] if it was found from $some_url.
    

    这依赖于网站提供适当的元标记,这并不总是对您有利,因此您需要备份方法(例如文档标题或检查 html 中的单词)或默认描述值以防万一什么都得不到。

    要获取网站的快照,您可以依赖第三方服务,例如 picoshot.com 或 websnapr.com/,但在很多情况下,这可能不是最佳选择。如果你想自己做快照,你可以这样做,但过程会很复杂,你需要对你的服务器和环境进行大量控制,你可以查看this之类的东西来帮助你开始快照。如果您有 Linux 等环境,该脚本将无法工作,因为它使用 Internet Explorer 浏览器捕获,您可以查看here 了解一些 Linux 解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      • 2023-03-08
      相关资源
      最近更新 更多