我无法获得完整的网址路径

时间:2014-06-01 21:52:27

标签: php

我有两个按钮可以在我的网站中更改我的语言.. 我正在使用

获取完整的网址
$myurl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

我的两个按钮:

echo '<a href="'.$myurl.'?lang=en"><img src="http://www.example.com/site/flags/en.png" name="English" title="English" alt="" width="40" height="40" border="0" ></a>';

echo '<a href="'.$myurl.'?lang=de"><img src="http://www.example.com/site/flags/de.png" name="German" title="German" alt="" width="40" height="40" border="0" ></a>';

到目前为止它工作得很好......所以如果按第一个按钮我的网址(在我的网址栏中)将是

http://www.example.com/site/?lang=en

现在,如果我回应这个"http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 我得到了http://www.example.com/site/index.php,在我的网址栏中我可以看到

http://www.example.com/site/?lang=en

有谁知道我为什么不能抓住&#34; ?lang = en?

我也尝试了下面的代码,但没有运气......

if ($string == "http://www.example.com/site/index.php" || $string == "http://www.example.com/site/" || $string == "http://www.example.com/site/?lang=en" || $string == "http://www.example.com/site/index.php?lang=en"){
echo "ENGLISH";
}else{
echo "DE";
}

1 个答案:

答案 0 :(得分:1)

所以你想从url params中读出lang吗?

if (!isset($_GET['lang']) || $_GET['lang'] == 'en')
    echo "ENGLISH";
else
    echo "DE";

如果您只想获取要在链接中使用的查询字符串,请使用:

echo $_SERVER['PHP_SELF'] . $_SERVER['QUERY_STRING'];

或者在没有查询字符串时删除?

echo $_SERVER['PHP_SELF'] . ($_SERVER['QUERY_STRING']!=''?'?':'') . $_SERVER['QUERY_STRING'];