我想张贴#参数查询字符串像...如何获得查询字符串中的散列(#)值
www.demo.php?tag=c#
现在我试图获取标记值在另一个页面
$_GET['tag']
但我没有得到#值没有与$ _GET来。我只能得到“c”。
我想张贴#参数查询字符串像...如何获得查询字符串中的散列(#)值
www.demo.php?tag=c#
现在我试图获取标记值在另一个页面
$_GET['tag']
但我没有得到#值没有与$ _GET来。我只能得到“c”。
哈希字符(#
)在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);
参见:http://stackoverflow.com/q/2317508/3933332 – Rizier123