2014-02-08 80 views
0

我正在使用PHP爲我的網站。我想獲取類似test/show.php?ID=247#about的URL值。如何獲得後的網址值#

當我用會話變量

<?php 

session_start(); 
$url = $_SERVER['REQUEST_URI']; 

echo $url; 

?> 

其打印僅test/show.php?ID=247。我不是#about。這#about我想用來重定向我的主頁面菜單。

請任何人告訴我如何得到它。

謝謝。

+0

爲了詳細說明以下提供的答案訪問它,你總是可以的onPageLoad通過Ajax調用傳遞變量一個PHP文件,然後以某種方式處理它。 – Armin

+0

這是一個非常糟糕的主意,因爲它不保存在搜索引擎索引中。換句話說,你的'page#1','page#2',...'page#n'都將被記錄爲一個頁面:'page'。不要那樣做。 –

回答

1

不能在PHP訪問TIS部分(散),您可以使用JavaScript

<script type="text/javascript"> 
    alert(document.location.hash) 
</script> 
2

你不能 - 無需自定義客戶端支持

"hash" (or Fragment Identifier)不發送服務器正常。

的片段標識符的功能比所述URI的其餘部分是不同的:即,其處理是排他的客戶端不從Web服務器參與..當一個代理(如Web瀏覽器)請求Web服務器的Web資源時,代理會將URI發送到服務器,但不會發送片段。代理會等待服務器發送資源,然後代理會根據文檔類型和片段值處理資源。


你可以,例如,使用JavaScript鉤到窗體submit事件,從適當window.location.hash閱讀,並推值轉化爲表單提交控制。然而,一般應該重新考慮(或者說避免)設計,原因如下:

  1. 散列更改通常用於客戶端狀態管理和「AJAX」導航。
  2. 複雜性增加,以及意外/瀏覽器破壞行爲。
  3. 它不適用於「正常」鏈接或導航後首頁加載。
+0

謝謝。你能告訴我你將如何使用客戶端上的自定義JavaScript來做到這一點嗎? – user3184286