在PHP中确定引用域的最佳方法?

在PHP中确定引用域的最佳方法?,php,http,referrer,Php,Http,Referrer,我有一些代码只想在PHP网站上展示给Twitter.com的访问者。最好的方法是什么?您可以使用以下方法: PHP代码: <?PHP $visitor_url = "twitter"; $uri = parse_url($_SERVER['HTTP_REFERER']); $check_visitor = strpos(strtolower($uri['host']), $visitor_url); if($findme); if($check_vis

我有一些代码只想在PHP网站上展示给Twitter.com的访问者。最好的方法是什么?

您可以使用以下方法:

PHP代码:

<?PHP 
   $visitor_url = "twitter";
   $uri = parse_url($_SERVER['HTTP_REFERER']);  
   $check_visitor = strpos(strtolower($uri['host']), $visitor_url);
   if($findme);

   if($check_visitor !== false) {       
     //do something
   }

?>

除了其他答案之外,如果您要根据推荐人输出不同的内容,您也应该这样做

header( 'Vary: Referer' );

这样,浏览器和代理就会知道内容可能会因推荐人的不同而有所不同。

请进一步解释?你说的twitter访客是什么意思。就像他们直接来自twitter或者什么。不,你必须降低
==
运算符的两个操作数,以便区分大小写。将其修复为strtolower($uri['host'])=='twitter'。主机名不会是
“twitter”
;如果链接通过重定向器(或几个!),则可能是
“twitter.com”
,或者可能是其他东西(如
“t.co”
),然后您必须使用explode($uri['host',”)[0];如果referer_url是twitter.com.cn或.uk会发生什么情况?如果((strpos($tmp,twitter.com/)==false)|($strpos($tmp,twitter.com.cn/)==false)){那么你必须为所有域扩展写“如果”s。如果你只检查twitter,而不是扩展,那就更好了。
header( 'Vary: Referer' );