【问题标题】:How can I store a full url that contains a hashmark within a variable?如何在变量中存储包含井号的完整 url?
【发布时间】:2009-11-02 10:22:51
【问题描述】:

我正在尝试存储一个 url,例如:

http://localhost/pro_print/index.php#page=home

在变量中,但我找不到执行此操作的函数。我找到了很多存储 index.php 的解决方案,但它不包括井号及其后面的内容。有没有 PHP 解决方案?

我确实看到我可以使用 document.write(document.url) 或 document.write(location.href) 获得完整的 url,包括带有 javaScript 的 hashmark,但是如何将其存储到我的变量中?有什么办法可以将 PHP 和 javaScript 结合在这样的解决方案中?

<?php $url ="?><script>document.write(document.url)</script><?php "?>

【问题讨论】:

  • 您确实意识到在页面到达您的浏览器并且javascript开始运行之前解析了php?
  • erm,是的,您似乎完全混淆了客户端和服务器之间的执行顺序。如果您希望客户端 JavaScript 将变量发送回服务器上的 PHP,您需要查看表单提交或 XMLHttpRequest。

标签: php javascript url variables


【解决方案1】:

片段标识符(# 以及出现在它之后的所有内容)完全由客户端处理,并且在请求 URI 时不会发送到服务器。

要使其可用于 PHP,您必须:

  1. 允许页面加载
  2. 使用 JavaScript 读取位置
  3. 使用 Ajax 技术(例如 XMLHttpRequest)或在后续请求中将其发送到服务器

这不会使其在原始脚本运行时对服务器可用,但其他任何东西都不能。

另一种方法是将片段标识符中的信息复制到 URI 中的其他位置(例如查询字符串)。本网站在提交答案时使用它。

【讨论】:

    猜你喜欢
    • 2014-09-25
    • 1970-01-01
    • 2015-10-16
    • 2013-05-28
    • 2017-06-06
    • 2015-01-31
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    相关资源
    最近更新 更多