最近,當我看到谷歌結果頁面時,查詢和其他參數傳遞給#(散列)而不是通常的「?」如何在PHP中使用哈希傳遞參數
此外,在臉書我看到了同樣的事情。這是非常有趣的,經過與google的簡單搜索,我發現了與perl和Ruby相關的結果,但沒有使用PHP的結果。
是否有可能在PHP中使用#而不是「?」來傳遞參數或者只有perl/Ruby纔有可能。這將很有用,搜索引擎不會解析URL中的參數。
任何想法對我都有幫助。
最近,當我看到谷歌結果頁面時,查詢和其他參數傳遞給#(散列)而不是通常的「?」如何在PHP中使用哈希傳遞參數
此外,在臉書我看到了同樣的事情。這是非常有趣的,經過與google的簡單搜索,我發現了與perl和Ruby相關的結果,但沒有使用PHP的結果。
是否有可能在PHP中使用#而不是「?」來傳遞參數或者只有perl/Ruby纔有可能。這將很有用,搜索引擎不會解析URL中的參數。
任何想法對我都有幫助。
傳統上,#
告訴瀏覽器自動滾動到頁面中的一個特定點,該點已經(並且仍然)經常用於實現來自頁面的一部分的鏈接(例如內容)到另一個(例如一節標題)。
但是,它也會導致包含#
的URL被記錄在歷史記錄中,即使它與之前的URL相同,除了#
以及之後的內容。 (換句話說,用戶仍然在同一頁面上)。這意味着即使狀態更改與頁面不一致,也可以使用後退按鈕返回到之前的狀態,加載。
因此,現代AJAX應用程序常常用它來表示用戶可能想要「返回」的事情發生。
不是,這是不可能的。
你看到的只是一種裝飾,以反映地址欄中的AJAX調用。
無論您選擇哪種語言 - 它們都位於服務器端,並使用HTTP協議與瀏覽器通信。 HTTP請求中不允許使用錨點。這是完全客戶端的東西
不可能_without_clientside腳本將變量傳遞給服務器端。你可以很容易地設置一些東西,使JavaScript與哈希數據 – 2010-08-06 16:54:13
@Jamie服務器,這是不可能與HTTP協議。期間 – 2010-08-06 17:03:13
當您點擊某個頁面時,它不會通過HTTP協議發送,我同意這一點。但是,JavaScript可以提取數據,序列化,然後用AJAX調用或使用重定向作爲GET變量來訪問服務器端腳本。 – 2010-08-09 14:54:33
您在搜索結果中遇到混淆,因爲散列一詞是overloaded,正如參數傳遞的概念一樣。
您看到了在散列中傳遞值的概念引用,因爲associative array在某些語言中稱爲散列(這是散列表的簡寫)。
#
字符也被混淆命名。它被稱爲「哈希」,「磅」,「數字」和「十八」。自從我在美國長大以來,我把它稱爲我的腦海中的一個「英鎊符號」,這可能會讓更多英國英語的用戶感到惱火,並且不會有混亂的可能性(考慮「£」)。
在函數中傳遞函數參數在Perl中是一個獲取命名參數的好方法。 PHP只有位置參數,但是使用Array可以很好地工作。
許多網絡庫對錶單值使用散列/關聯數組類型結構。鍵通常是字段ID,值是字段值。
在URI中,#
表示片段說明符的開始。它標識了URI指向的頁面的一部分。它通常不用於將請求信息從客戶端傳回服務器。
有可能是一些服務器重寫或左右。 實例與Apache服務器,你可以處理一些URI像
http://www.mysite.com#something
,並把它改寫爲
http://www.mysite.com/perl/script.pl?data=something
等處理它作爲一個簡單的GET查詢到您的script.pl
這是所有服務器端處理,對客戶端不可見
它不能被服務器處理,因爲片段沒有被髮送到服務器。 – 2010-08-07 04:32:58
沒有發送到服務器?好吧,也許我誤解了一些東西,但你如何提交請求谷歌沒有發送任何東西到服務器...... oO – benzebuth 2010-08-08 16:28:21
@benzebuth:**這個片段**沒有被髮送到服務器,這意味着沒有頁面重新加載和URL不會更改(意思是URL更改會調用頁面重新加載)。谷歌和類似的應用程序正在使用AJAX並以這種方式向服務器發送數據。你的常識可能是試圖解釋在##後URL中的任何變化都不會導致頁面重新加載,所以這種方式(GET/POST)什麼都沒有發送到服務器。 – trejder 2012-10-25 19:52:57
如果我正確理解這一點,它確實只是一個信號。使用後退按鈕實際上不會撤消對頁面的更改。 – 2010-08-06 16:48:42
你在使用ajax獲取參數值(在谷歌樣式中)的任何教程? – 2010-08-06 16:50:32
@Aakash Chakaravarthy:剛剛使用了維基百科文章(http://en.wikipedia.org/wiki/Fragment_identifier)和個人經歷。有許多方法可以獲得片段標識符的值(如果我沒有記錯的話,可以使用'window.location',但我沒有及時瞭解AJAX的最新實踐)。 – David 2010-08-07 02:12:41