document.write未返回字符串


document.write not returning string

我想用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脚本执行,原因有两个:

  1. 你的剧本被引用了
  2. 即使你把它放在报价之外,它也不会工作,因为你在服务器端(在php代码上),直到你的代码到达客户端(浏览器),它才会执行

尝试此操作也无效:
爆炸('#',$url);

因为#之后的url部分不会发送到服务器。此处

此外,阅读客户端语言与服务器端语言可能会有所帮助。