2016-03-16 43 views

回答

1

哈希字符(#)在URL中有特殊含义。它引入了一个fragment identifier。片段标识符通常用于定位页面内的某个位置。

浏览器处理片段标识符,当浏览器向服务器发出HTTP请求时,它将从URL中删除。

作为一个特殊字符,如果你想让它具有它的字面值,你必须对它进行编码。写的网址在你的问题的正确方法是:

www.demo.php?tag=c%23 

当它是这样写的,$_GET['tag']包含正确的值('c#')。

如果您从PHP代码此类URL(可能是从诸如数据库的外部资源获取的tag值),你必须使用PHP函数urlencode()正确编码你把网址中的值。或者,甚至更好,创建一个数组的所有URL参数和它们的值,然后将它传递给http_build_query()生成的网址:

$params = array(
    'tag' => 'c#', 
    'page' => 2, 
); 
$url = 'http://localhost/demo.php?'.http_build_query($params); 
+0

已经尝试过这个。它不工作... – Hardik

+0

更加努力。有用。 – axiac

+0

其实我已经改变了我的网址与干净的网址htaccess。像http:// localhost/demo/tag/c#/ – Hardik

相关问题