【问题标题】:I can't get full url path [duplicate]我无法获得完整的 url 路径 [重复]
【发布时间】: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" 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

有人知道为什么我不能“抓住” ?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...." 它不会为您提供包含主机名的绝对路径,但它会起作用。
  • 请先搜索。昨天问了完全相同的问题:stackoverflow.com/questions/23973574/get-full-website-url
  • 使用 "$_SERVER['QUERY_STRING']" 获取参数!
  • 返回“/site/index.php”
  • 我检查了这个点赞,但对我不起作用...我的网站是 Wordpress.. 需要我在上面编辑任何内容吗?所有这些返回example.com/site 即使在我的网址栏中也是example.com/site/?lang=en

标签: php


【解决方案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']
猜你喜欢
  • 2020-01-07
  • 1970-01-01
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 2018-10-24
  • 1970-01-01
  • 1970-01-01
  • 2010-11-28
相关资源
最近更新 更多