Ⅰ url-thinkphp如何獲取鏈接參數求大神支招
在ThinkPHP框架中,獲取鏈接參數可以通過以下幾種方法實現:
使用$_GET超全局數組:
- 方法:如果你通過URL傳遞參數,如http://example.com/index.php?url=http%3A%2F%2Fwww..com,你可以使用$_GET['url']來獲取傳遞的URL參數。但注意,此時直接獲取可能只會得到部分字元串,這是因為URL編碼和解碼的問題。
- 解決方案:確保傳遞的URL參數經過正確的URL編碼,並在接收端使用urldecode函數解碼。
使用ThinkPHP的I函數:
- 方法:ThinkPHP提供了一個便捷的I函數來獲取請求參數,你可以使用$url = I來獲取URL參數。
- 注意事項:同樣需要注意URL編碼和解碼的問題。
確保URL完整性:
- 方法:在構建傳遞URL的鏈接時,確保使用urlencode對URL進行編碼,如?url=urlencode。
- 避免格式問題:避免使用如/a/b等格式傳遞參數,這可能導致參數解析不完整。
使用parse_url和$_SERVER['HTTP_REFERER']:
- 方法:在某些情況下,你可能需要分析HTTP請求的其他部分來獲取完整的URL。可以使用parse_url來分析引用頁面的URL。但注意,$_SERVER['HTTP_REFERER']可能為空或不可信,因為它是由客戶端瀏覽器提供的。
處理特殊字元:
- 問題:在URL中包含特殊字元時,可能會導致解析問題。
- 解決方案:在傳遞URL前,可以使用字元串替換函數將特殊字元替換為其他不易引起解析問題的字元,然後在接收端再替換回來。例如,url=str_replace。
綜上所述,獲取鏈接參數時,需要注意URL的編碼和解碼、參數的傳遞格式以及特殊字元的處理。通過合理使用ThinkPHP提供的函數和PHP內置函數,可以准確地獲取和處理URL參數。
Ⅱ php 怎麼對url的參數串進行壓縮和解壓縮
如果參數名和值全部是已知的,那麼做一個映射表就可以了。
如果參數的值涉及用戶提交的內容,對於過長的內容,最好使用POST,並開啟Gzip壓縮。
關於URL的長度:
1,普通用戶很少通過修改url來實現跳轉
2,太短的參數名稱就很難理解含義,比如content如果縮短成c,你知道這代表什麼意思么?
3,如果說為了便於保存和分享,那麼可以考慮short url的處理方式
4,url的長度對性能的影響微乎其微,除非是超長文本,那就是程序設計的問題了
5,如果說刻意追求極短的url,還要進行壓縮和解壓縮步驟,真的有點畫蛇添足了