2009-11-02 42 views
0

我試圖存儲網址,如:如何在變量中存儲包含哈希標記的完整url?

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

在一個變量

,但我找不到,做一個函數。我發現了很多解決方案來存儲index.php,但它不包含哈希標記及其後面的內容。有這個PHP解決方案嗎?

我確實發現我可以通過使用document.write(document.url)document.write(location.href)獲得包含哈希標記的完整url,但是如何將其存儲到我的變量中?有沒有什麼辦法可以像這樣的解決方案結合使用PHP和javaScript?

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

你知道php在頁面到達你的瀏覽器之前就已經被解析了,並且javascript開始運行了嗎? – Marius 2009-11-02 10:26:39

+0

恩,是的,你似乎有完全混淆了客戶端和服務器之間的執行順序。如果您希望客戶端JavaScript將變量發送回服務器上的PHP,則需要查看錶單提交或XMLHttpRequest。 – bobince 2009-11-02 10:31:04

回答

3

片段標識符(#及其後出現的所有內容)完全由客戶端處理,並且在請求URI時不會發送給服務器。

要使其可用於PHP,你必須:

  1. 允許網頁加載
  2. 與JavaScript的閱讀位置
  3. 把它寄給你使用了Ajax技術的服務器(例如XMLHttpRequest的)或在後續請求中

這不會在原始腳本運行時使服務器可用,但沒有別的可以。

另一種方法是複製URI中其他地方的片段標識符中的信息(例如查詢字符串)。提交答案時,本網站會使用它。