使用window.location.hash(用于传入页面的ID)返回如下内容: 另外,对于那些问我为什么使用window.location.hash而不是window.location.href的人是因为window.location.href由于某种原因开始无限循环,而.hash则没有。我不认为这应该是一个大问题,但请告诉我,如果它是,我是否需要改变它。 http://website.com/NewPage.php#?name=1418019307305
[数字串实际上是时代系统时间]
当使用PHP尝试检索此变量时,它不会拾取文件中应该写入的任何文本。
<?php
$myfile = fopen("File1.txt","w");
echo $_GET['name'];
fwrite($myfile, $_GET['name']);
fclose($myfile);
?>
答案 0 :(得分:1)
尝试打印 $ _ SERVER 变量,它会为您提供数组,并在所需的键中,您可以获取值。它可以帮助您在字符串中找到该变量。
答案 1 :(得分:0)
如果你想在哈希标记或锚之后得到这个值,那就不可能用&#34;标准&#34; HTTP,因为此值永远不会发送到服务器。但是,您可以使用parse_url()将URL解析为位,包括片段部分。
这应该可以解决问题:
<?php
$name_query = parse_url("http://website.com/NewPage.php#?name=1418019307305");
$get_name = substr($name_query['query'], strpos($name_query['query'], "=") + 1);
echo $get_name;
?>
工作示例:http://codepad.org/8sHYUuCS
然后您可以使用$get_name
来存储&#34;名称&#34;文本文件中的值。
答案 2 :(得分:0)
散列标记是一个永远不会被服务器处理的片段,而是用户代理,即浏览器,因此JavaScript当然可以访问它。 (见http://tools.ietf.org/html/rfc3986#section-3.5)。 PHP允许您使用parse_url()操作包含哈希标记的URL。这是获取信息的另一种方式:
<?php
$parts = parse_url("http://website.com/NewPage.php#?name=1418019307305");
list(,$value) = explode("=",$parts['fragment']);
echo $value; // 1418019307305
在这种情况下,散列标记的放置会消除查询字符串,因此$ _SERVER ['QUERY_STRING']将显示一个空字符串。如果按照最佳实践重写URL,则查询字符串将位于散列标记和该标记之后的任何信息之前。在这种情况下,用于解析此类URL的脚本可以是前面的变体,如下所示:
<?php
$bestPracticeURL = "http://website.com/NewPage.php?name=1418019307305#more_data";
$parts = parse_url( $bestPracticeURL );
list(,$value) = explode("=", $parts['query']);
$hashData = $parts['fragment'];
echo "Value: $value, plus extra: $hashData";
// Value: 1418019307305, plus extra: more_data
请注意,在这种情况下,parse_url是如何捕获查询字符串以及哈希标记数据的。当然,如果查询字符串有多个键和值,那么您可能需要在'&amp;'上爆炸。进入一个数组,然后爆炸每个数组元素以提取值。