在PHP中确定引用域的最佳方法?
我有一些代码只想在PHP网站上展示给Twitter.com的访问者。最好的方法是什么?您可以使用以下方法: 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
$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' );