1

我想从查询字符串中取出 var1 和 var2 并将其(回显)写入 HTML。

看起来很简单,但我的 URL 需要这样形成:

http://example.com/filename.html#var1=FOO&var2=BAR

请注意文件名后面的散列-- URL 不包含正常的?查询字符串分隔符。

我如何用一个简单的功能来完成这个?...似乎是一个基本问题,但我无法使用需要 # before 的 URL 语法?

提前致谢!

UPDATE UPDATE UDATE - 以@Musa 回答中的代码示例为基础。

我想从窗口位置获取 PHP_URL_FRAGMENTS,并将它们写入 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

各位高手有什么解决办法吗?谢谢你。

4

2 回答 2

2
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

演示

于 2012-08-27T00:55:43.607 回答
1

您可以通过 Javascript 传递它或将其作为隐藏的表单元素发送到服务器。

尖号后面的部分(散列部分)通常不会被浏览器传递给服务器。

您可以检查您的服务器日志 - 收到的获取请求将是“http://example.com/filename.html”,而不是“http://example.com/filename.html#?var1=FOO&var2=BAR”

于 2012-08-27T01:03:49.283 回答