我一直在使用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”。请告诉我,如何在“#”之后获得内容?我非常需要它。
答案 0 :(得分:1)
您应该发布到以下网址,以使值显示在$logout
:
http://mypage.com/index.php/controller/language_testing/bg/9
否则,服务器无法访问井号后面的数据。
答案 1 :(得分:1)
http://au.php.net/manual/en/function.parse-url.php
$urlComp=parse_url($yourURL);
echo $urlComp['fragment'];
答案 2 :(得分:0)
你做不到。 #
是一个HTML书签,用于使用HTML元素上的ID重定向焦点。浏览器不会将此作为服务器URL的一部分提交。
根据您的重写规则,您要么想要创建一个语义上令人愉悦的链接,例如http://site.com/path/index.php/bg/9
或http://site.com/path/index.php?bg=9
(这也是您的重写规则将会实现的目标)。
请注意,如果您因某种原因确实需要提交#
符号,那么您需要使用网址中的%23
提交它(@ jth_92将其打败)。
答案 3 :(得分:0)
您需要更改函数params为代码添加一个参数
public function language_testing($language, $code , $logout=0){
echo ($language);
echo ($code);
//come actions
}
并称之为 http://mypage.com/index.php/controller/language_testing/bg/9
它将解决您的问题,然后您可以连接两个值
答案 4 :(得分:0)
#是一个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