我需要做一些基本的URL语句,但我知道 nothing 关于PHP。我尝试了一些我在网上找到的例子,但它们似乎没有用。
注意:这适用于wordpress博客,如果它有所不同。
我想要一个“PHP IF URL”语句来执行以下操作:
如果网址为referrer = twitter.com,则为echo
"Follow us on <a href="twitter.com/example">Twitter</a>
如果URL referrer = facebook.com则回显
"Follow us on <a href="facebook.com/example">Facebook</a>
如果没有网址推荐人或以上都没有回应“请关注我们”
答案 0 :(得分:2)
您可以访问$_SERVER['HTTP_REFERER']
来查看推荐人。如有必要,您可以使用parse_url()
解析网址。
仔细阅读php.net上有关推荐人的警告:
将用户代理引用到当前页面的页面地址(如果有)。这是由用户代理设置的。并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER修改为功能。 简而言之,它无法真正被信任。
答案 1 :(得分:1)
您可以从$ _SERVER ['HTTP_REFERER']中检索网址,使用parse_url解析它,然后根据parse_url的响应中的内容回显您的响应。它返回一个关联数组,其中主机键是主机名。
<?php
if ( empty( $_SERVER['HTTP_REFERER'] ) )
echo 'Follow us on Nothing';
else {
$ref = parse_url( $_SERVER['HTTP_REFERER'] );
switch( $ref['host'] ) {
case 'twitter.com':
echo 'Follow us on <a href="http://twitter.com/example">Twitter</a>';
break;
case 'facebook.com':
echo 'Follow us on <a href="http://facebook.com/example">Facebook</a>';
break;
default:
echo 'Follow us on Nothing';
break;
}
}
?>
请记住检查引荐来源中是否有任何内容。并非所有浏览器都会发送它,如果用户未从其他网站发送到此处,则不会发送它,例如:手动输入了网址。
另请注意,如果用户使用https从页面导航,则不会发送任何引用。
答案 2 :(得分:0)
输出将存储在$ str。
中$url = $_SERVER["HTTP_REFERER"];
$url_parts = parse_url($url);
switch($url_parts["host"])
{
case "twitter.com":
$str = "Follow us on <a href=\"twitter.com/example\">Twitter</a>";
break;
case "facebook.com":
$str = "Follow us on <a href=\"facebook.com/example\">Facebook</a>";
break;
default:
$str = "";
break;
}