住在http://vivavidadesign.com/includes/content.php
我有PHP代码:
<?php
if (isset($_GET["#photo"])){
print ("HELLOOOOOOO");
} else {
print ("Nothing Set");
}
?>
我正在使用此文件与AJAX一起返回文件。
以前转到http://vivavidadesign.com/includes/content.php#photo会触发(isset($_GET["#photo"]))
。我可以使用?photo
触发它,但我想知道如何触发使用哈希,即#photo
答案 0 :(得分:1)
PHP不会获取哈希/锚。 Can I read the hash portion of the URL on my server-side application (PHP, Ruby, Python, etc.)?
你必须使用Javascript解析它,并可能通过ajax发送到你的php脚本。
答案 1 :(得分:1)
在请求数据时,浏览器永远不会向服务器发送哈希值。
你必须手动发送,即。使用jquery:
var hash = window.location.hash;
$.ajax({ url: 'content.php?photo=' + hash});
答案 2 :(得分:0)
这类似于this other question。
您不是使用$ _GET,而是使用parse_url()。
您要找的部分是fragment
Array
(
[path] => includes/content.php
[fragment] => photo
)
编辑以澄清:
如果此URL来自客户端,则您滥用/误解了主题标签在URL中的运行方式:http://en.wikipedia.org/wiki/Fragment_identifier。你必须通过javascript解析客户端。
答案 3 :(得分:0)
#xxx
不是页面的参数,而是页面中的锚点。所以PHP不会把它放在GET变量中。
要么使用 [码] http://vivavidadesign.com/includes/content.php?%23photo [/代码]
如果你真的需要变量的名称是#photo,或者你可以像这样在经典的wat中传递变量 [码] http://vivavidadesign.com/includes/content.php?photo=something [/代码]
答案 4 :(得分:0)
<?php
if(isset($_GET["photo"])) {
echo $_GET["photo"];
} else {
echo "Nothing Set";
}
?>
并称之为:
index.php?photo=file.jpg
顺便说一下。如果不需要,请不要使用打印,而是使用echo。
答案 5 :(得分:0)
How to get the value after the hash in "somepage.php#name"?
在问号后面的URL中包含get,例如。
http://www.example.com/?photo=1
在主题标签之后的URL中包括锚,例如
http://www.example.com/#photo
永远不会从浏览器向服务器发送锚点,但您可以使用javascript找到它,并通过javascript将其传递给服务器。
如果您希望自己的变量为get,则需要将代码中的$_GET['#photo']
更改为$_GET['photo']
,并将URL中的#photo
更改为?photo=something
。
答案 6 :(得分:0)
你必须选择一个php或javascript才能获得价值:
<强> PHP 强>
$ ar = explode(“#”,$ _ SERVER ['REQUEST_URI']);
的print_r($ AR [1]);
2 JS:
var hash = window.location.hash;
document.location.href = '/content.php?photo='+hash;