可以在php中用#解析url吗?

时间:2017-03-10 09:46:37

标签: javascript php

例如: 我在javascript中声明了url:

<script>
  window.location.href = "signup.php#year=" + myyear; 
</script>

在php中,我试图获得#year:

<?php
  if(isset($_GET['year'])){
    $year = $_GET['year'];
 }
?>

提前谢谢你!

5 个答案:

答案 0 :(得分:0)

简单来说我们使用?或/获取变量而不是#

答案 1 :(得分:0)

不使用#符号

<script>
  var myyear;
  window.location.href = "signup.php?year=" + myyear; 
</script>

你可以得到

<?php
  if(isset($_GET['year'])){
    $year = $_GET['year'];
 }
?>

答案 2 :(得分:0)

实际上你只是遗漏了href上的一件事。

window.location.href = "signup.php?year=" + myyear
  

此代码会以* signup.php?year = 2017

结果为url

<强>腓 您现在可以使用$_GET['year']获取它。

答案 3 :(得分:0)

使用函数parse_url将url字符串转换为PHP url对象,并取消引用其&#34;片段&#34;像这样的关键:

$url=parse_url("www.example.com/example/?shareURL&adherentID=ascd#123");
echo $url["fragment"]; 

上面的代码返回123。这里的工作示例 - http://codepad.org/r8icljcW

答案 4 :(得分:-1)

如果您想使用$_GET,则应使用?代替#。的?符号是GET的指标,而不是#。

只需将您的网址结构更改为:

即可
<script>
  window.location.href = "signup.php?year=" + myyear; 
</script>

然后,正如您所做的那样,使用GET获取值。

<?php
  if(isset($_GET['year'])){
    $year = $_GET['year'];
 }
?>

如果要使用更多参数,请使用&符号将它们分开。你可以添加任意多个,你只需要遵循`&amp; key1 = value1&amp; key2 = value2?结构,您可以根据需要扩展它。例如:

<script>
  window.location.href = "signup.php?year=" + myyear&month=5; 
</script>

现在你可以这样做:

<?php
  if(isset($_GET['year'])){
    $year = $_GET['year'];
    $month = $_GET['month']; // Would assign 5 to month.
 }
?>