[英]How to pass parameters with hash in PHP
最近,當我看到google結果頁面時,查詢和其他參數以#(哈希)而不是通常的“?”傳遞
另外,在facebook上我看到了同樣的事情。 這很有趣,在用google進行簡單搜索后,我發現與perl和Ruby有關的結果,但與PHP無關。
是否可以在PHP中用#而不是“?”傳遞參數? 或者這僅在perl / Ruby中可行。 這將很有用,搜索引擎將不會解析URL中的參數。
任何想法對我都會有幫助。
傳統上, #
告訴瀏覽器自動滾動到頁面中的特定點,該點過去(現在仍然)用於實現從頁面的一部分(例如目錄)到另一部分(例如節標題)的鏈接。 )。
但是,它也具有使包含#
的URL記錄在歷史記錄中的作用,即使它與先前的URL相同(除了#
及其后面的內容)也是如此。 (換句話說,用戶仍在同一頁面上。)這意味着后退按鈕可用於返回到您之前的狀態,即使該狀態更改與某個頁面不對應-加載。
因此,現代AJAX應用程序經常使用它來表示發生了某些事情,用戶可能想“回頭”。
不,這是不可能的。
您所看到的只是一種裝飾,可以在地址欄中反映AJAX調用。
無論選擇哪種語言,它們都位於服務器端,並使用HTTP協議與瀏覽器進行通信。 並且HTTP請求中不允許使用錨。 那完全是客戶端的事情
您會在搜索結果中遇到混亂,因為術語“哈希”已超載 ,參數傳遞的概念也是如此。
您正在看到有關在哈希中傳遞值的概念的引用,因為在某些語言中, 關聯數組稱為哈希(哈希表是哈希表的縮寫)。
#
字符也容易混淆。 它被稱為“哈希”,“英鎊”,“數字”和“八字形”。 自從我在美國長大以來,我就稱其為“英鎊符號”,這可能會給使用更多英式英語的用戶帶來煩惱,並且同樣充滿混亂的可能性(考慮“£”)。
在Perl中的哈希中傳遞函數參數是獲取例程命名參數的一種好方法。 PHP僅具有位置參數,但在此處使用Array效果很好。
許多Web庫將哈希/關聯數組類型結構用於表單值。 鍵通常是字段ID,值是字段值。
在URI中, #
表示片段說明符的開始。 它標識URI指向的頁面部分。 通常,它不用於將請求信息從客戶端傳遞回服務器。
大概有一些服務器重寫。 apache服務器示例,您可以處理一些uri
http://www.mysite.com#something
並重寫為
http://www.mysite.com/perl/script.pl?data=something
然后將其作為對您的script.pl的簡單GET查詢進行處理
這是所有服務器端處理,對客戶端不可見
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.