PHP如果URL语句

时间:2012-03-22 23:45:12

标签: php

我需要做一些基本的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>

如果没有网址推荐人或以上都没有回应“请关注我们”

3 个答案:

答案 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;
}