如何从url中获取参数


How to get parameter from url?

我一直在使用Code Igniter开发一个PHP页面。控制器有一些功能:

public function language_testing($language_code, $logout=0)
{      
      echo ($language_code);
      //come actions
}

我正在尝试发送以下网址:http://mypage.com/index.php/controller/language_testing/bg#9

但是我的函数显示的是"bg"而不是"bg#9"。请告诉我,如何在"#"之后获得内容?我非常需要它。

您应该发布到以下URL,以获得出现在$logout:中的值

http://mypage.com/index.php/controller/language_testing/bg/9

否则,服务器无法访问英镑符号后的数据。

http://au.php.net/manual/en/function.parse-url.php

$urlComp=parse_url($yourURL);
echo $urlComp['fragment'];

你不能。#是一个HTML书签,用于使用HTML元素上的ID重定向页面的焦点。浏览器不会将其作为URL的一部分提交给服务器。

根据您的重写规则,您可能希望创建一个语义上令人满意的链接,如http://site.com/path/index.php/bg/9http://site.com/path/index.php?bg=9(无论如何,这都是重写规则所要实现的)。

请注意,如果出于某种原因,您确实需要提交#签名,那么您需要使用URL中的%23来提交它(@jth_92击败了我)。

您需要更改函数参数并为代码添加一个参数

public function language_testing($language, $code , $logout=0){      
  echo ($language);
  echo ($code);
  //come actions

}

并称之为http://mypage.com/index.php/controller/language_testing/bg/9

它将解决您的问题,然后您可以连接两个值

#是一个HTML实体,在锚标记中用于跳转到名称引用。例如:

<a href="#test">Jump to test on page</a>
<a name="test">Test</a>

因此,它不会被解释为参数的一部分。您应该能够使用bg%23,因为%23是哈希的转义字符。

http://mypage.com/index.php/controller/language_testing/bg%239

如何在URL 中转义哈希字符