簡體   English   中英

如何在PHP中使用哈希傳遞參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM