【问题标题】:Counter in PHP and preview with whatsapp facebook and twitter在 PHP 中进行计数器并使用 whatsapp facebook 和 twitter 进行预览
【发布时间】:2016-07-14 19:23:05
【问题描述】:

我在 PHP 页面中有一个计数器。假设我有一个 var=1。我希望当用户访问它时 var=var-1。它将被设置为 0。它运行良好。

问题是当我在 Whatsapp 或 Facebook 上共享网站时,生成这些应用程序的预览正在访问该页面并影响我的 var。

我如何知道页面是直接访问还是正在访问以生成预览链接?

【问题讨论】:

  • 这是一个有趣的问题,做得很糟糕。
  • 伙计,不是单词,而是问题,英语不是我的第一语言
  • 只需寻找 twitter facebook 等的用户代理,并在 PHP 访问时检查它们。

标签: php counter preview whatsapp


【解决方案1】:

您可以使用$_SERVER['HTTP_REFERER'] 检查请求来自何处 - 它会返回将用户代理引至当前页面的页面地址(如果有)。您可以检查引用者是 Facebook 还是 Whatsapp 并禁用您的变量计数器。

【讨论】:

  • 你知道这些应用的引用者吗?
  • Referers 值将包含 facebook.comwhatsapp
  • if(strstr($_SERVER['HTTP_USER_AGENT'],'facebookexternalhit')) {... } 这适用于 facebook,但我也需要 whatsapp 和 twitter。
  • AFAIK,Twitter 在抓取页面时使用 Twitterbot 的 User-Agent(带有版本,例如 Twitterbot/1.0 )来查找 Twitter Cards 标记。
  • Whatsapp 是这样的:'WhatsApp/2.10.750 Android/4.2.1
【解决方案2】:
if ((strstr(strtolower ( $_SERVER['HTTP_USER_AGENT']),'facebook')) || (strstr(strtolower ( $_SERVER['HTTP_USER_AGENT']),'whatsapp')) || (strstr(strtolower ( $_SERVER['HTTP_USER_AGENT']),'twitter')))  {
...
}

【讨论】:

  • 旁注:strstr 有一个不区分大小写的兄弟:stristr
猜你喜欢
  • 1970-01-01
  • 2017-04-14
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
相关资源
最近更新 更多