我无法获得完整的 url 路径 [重复]

Posted

技术标签:

【中文标题】我无法获得完整的 url 路径 [重复]【英文标题】:I can't get full url path [duplicate] 【发布时间】:2014-07-22 00:01:41 【问题描述】:

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

获取完整的网址
$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"    border="0" ></a>';

echo '<a href="'.$myurl.'?lang=de"><img src="http://www.example.com/site/flags/de.png" name="German" title="German"    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

有人知道为什么我不能“抓住” ?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";

【问题讨论】:

听说过$_SERVER['PHP_SELF']吗?只需执行echo "&lt;a href='$_SERVER['PHP_SELF']?lang=en'&gt;&lt;img...." 它不会为您提供包含主机名的绝对路径,但它会起作用。 请先搜索。昨天问了完全相同的问题:***.com/questions/23973574/get-full-website-url 使用 "$_SERVER['QUERY_STRING']" 获取参数! 返回“/site/index.php” 我检查了这个点赞,但对我不起作用...我的网站是 Wordpress.. 需要我在上面编辑任何内容吗?所有这些返回example.com/site 即使在我的网址栏中也是example.com/site/?lang=en 【参考方案1】:

所以你想从 url 参数中读出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'];

【讨论】:

纠正我的朋友...太好了...缺少 $_SERVER['QUERY_STRING']

以上是关于我无法获得完整的 url 路径 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法在 php 中检查 file_exist 的外部 url [重复]

在 Rails 中,如何获取当前 url(但没有路径)

在ajax中发送时无法获得正确的布尔值[重复]

JSON Javascript,解析 URL [重复]

如何检查文件(由完整路径给出)是不是存在?节点js [重复]

在 ASP.NET MVC 中获取操作的完整 URL [重复]