我想从查询字符串中取出var1和var2,并将其(echo)写入HTML。
看起来很简单,但我的URL需要这样形成:
http://example.com/filename.html#var1=FOO&var2=BAR
注意文件名后面的散列--URL不包含正常的?
查询字符串分隔符。
如何用一个简单的函数来实现这一点。。。这似乎是一个基本问题,但我无法使用需要#before?的URL语法?。
提前感谢!
UPDATE UPDATE UDATE-基于@Musa答案中的代码示例。
我想从窗口位置获取PHP_URL_FRAMMENTS,并将它们写入HTML,我正在尝试这样做:
// get the URL from window location:
$pageURL = $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://';
$pageURL .= $_SERVER['SERVER_PORT'] != '80' ? $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"] : $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
return $pageURL;
// parse URL including #fragments:
parse_str (parse_url ($pageURL, PHP_URL_FRAGMENT ), $args);
// write var values into the HTML:
echo $args['var1'], ' ', $args['var2'];
我要么没有正确创建$pageURL
,要么在parse_str
行中出错。
仍然使用如下URL语法:http://example.com/filename.html#var1=FOO&var2=BAR
向导们有什么解决方案吗?非常感谢。
parse_str (parse_url ("http://example.com/filename.html#var1=FOO&var2=BAR", PHP_URL_FRAGMENT ), $args);
echo $args['var1'], $args['var2'];
http://php.net/manual/en/function.parse-url.php
http://php.net/manual/en/function.parse-str.php
DEMO
您可以通过Javascript传递它,也可以将它作为隐藏的表单元素发送到服务器。
锐符号后的部分(哈希部分)通常不会通过浏览器传递到服务器。
您可以检查服务器日志-收到的get请求将为"http://example.com/filename.html",但不是"http://example.com/filename.html#?var1=FOO&var2=BAR"