如何获取包括哈希标记后的字符串参数在内的完整
URL
?我尝试使用echo$url = $_SERVER['REQUEST_URI'];
echo $url;
< p > # 标签后面的字符串将不会被读取。 < /p >
哈希值(包含#的字符串)不会被传递到服务器,它仅是浏览器的行为属性。然而$_SERVER['REQUEST_URI']
变量将包含剩余部分。
如果你真的需要知道哈希值,你需要使用JavaScript
的document.location.hash
属性,它包含哈希值的内容(然后你可以将其插入表单中或通过ajax
请求发送到服务器)。你可以使用一个Javascript onload function
将完整的URL(包括#后面的部分)发送到Ajax
端点。
你也可以在这里查看获取完整的URL,包括查询字符串和锚点
使用urlencode()
和urldecode()
函数。
在这个简短的例子中,我将向您展示如何将哈希值传递到服务器,并使其重定向到哈希值。
首先,在链接按钮中编码哈希值。
<a href="mylink.php?redirect=link1<?= urlencode("#tab5") ?>">redirect to Link1 </a>
现在从服务器重定向到链接 mylink.php
if ($_GET["redirect"] != null )
{
header("location: urldecode($_GET["redirect"]);
}
encodeURIComponent()
,浏览器仍然会忽略%23
之后的所有内容? - lightbringer