document.write没有返回字符串

时间:2015-03-16 12:14:02

标签: javascript php codeigniter

我想在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));
  ?>  

但是此代码按原样打印字符串,并且不会按%分割。

给出结果 这个链接http://immersed.in/CodeIgniter/#z%a

Array ( [0] => z%a )

请帮忙做什么

2 个答案:

答案 0 :(得分:0)

“但此代码按原样打印字符串,并且不会按%分割。?”

<?php 
     $variable = "<script>document.write(a)</script>"; 
     print_r (explode("%",$variable));
 ?> 

是的,编译器(解释器)是正确的!,因为当你说$variable = "<script>document.write(a)</script>";变量$variable是一个字符串变量,因为你有<script></script>并不意味着它将被执行为js脚本有两个原因:

  1. 您的脚本在引用
  2. 即使你把它放在引号之外它也不会工作,因为你在服务器端(在PHP代码上......)它将不会执行,直到你的代码到达客户端(浏览器)
  3. 也尝试这不会工作:
        爆炸('#',$ url);

    因为#之后的url部分没有发送到服务器。 here

    另外,阅读有关客户端和服务器端lang的信息可能会有所帮助。

答案 1 :(得分:0)

您无法使用php获取哈希标记。 javascript将在客户端运行,php将在服务器端运行。请参阅此链接。类似的答案:Getting FULL URL with #tag