1

我一直在使用 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”。请告诉我,我怎样才能得到“#”后面的内容?我非常需要它。

4

5 回答 5

1

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

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

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

于 2012-07-20T12:59:21.447 回答
1

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

$urlComp=parse_url($yourURL);
echo $urlComp['fragment'];
于 2012-07-20T13:07:04.843 回答
0

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

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

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

于 2012-07-20T13:03:58.147 回答
0

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

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

}

并像 http://mypage.com/index.php/controller/language_testing/bg/9一样调用它

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

于 2012-07-20T13:04:58.727 回答
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

如何在 URL 中转义哈希字符

于 2012-07-20T13:05:17.387 回答