我想用php获取url中#tag后面的字符串。但是没有函数可以找到它。所以我通过同一页面上的javascript获取它,并通过将该变量调用到php中
<script>
var query = location.href.split('#');
var a = String(query[1]);
</script>
<?php
$variable = "<script>document.write(a)</script>";
print_r (explode("%",$variable));
?>
但这段代码按原样打印字符串,并且不会按%分割。
给出的结果如下此链接的Array ( [0] => z%a )
http://immersed.in/CodeIgniter/#z%a
请帮助完成
您无法使用php获取哈希标记。javascript将在客户端运行,php将在服务器端运行。请参阅此链接。类似的答案:使用#标签获取完整URL,
"但此代码按原样打印字符串,并且不会按%.?"
<?php
$variable = "<script>document.write(a)</script>";
print_r (explode("%",$variable));
?>
是的,编译器(解释器)是对的!,因为当你说$variable = "<script>document.write(a)</script>";
时,变量$variable
是一个字符串变量,因为你有<script></script>
并不意味着它将作为js脚本执行,原因有两个:
- 你的剧本被引用了
- 即使你把它放在报价之外,它也不会工作,因为你在服务器端(在php代码上),直到你的代码到达客户端(浏览器),它才会执行
尝试此操作也无效:
爆炸('#',$url);
因为#之后的url部分不会发送到服务器。此处
此外,阅读客户端语言与服务器端语言可能会有所帮助。