我有$_SERVER['HTTP_REFERER']
—假裝它是http://example.com/i/like/turtles.html。我需要做些什麼才能從字符串中獲得http://example.com
部分,並將其存儲在自己的變量中?HTTP_REFERER提取方案和主機
5
A
回答
15
在這個例子中,最好的解決辦法是使用PHP的parse_url
method。這將URL分成一個關聯數組。
if ($parts = parse_url("http://example.com/i/like/turtles.html")) {
echo $parts[ "scheme" ] . "://" . $parts[ "host" ];
}
13
我會用下列方式parse_url ...
if ($urlParts = parse_url($myURI))
$baseUrl = $urlParts["scheme"] . "://" . $urlParts["host"];
2
你可以使用正則表達式:
if (isset($_SERVER['HTTP_REFERER']) && preg_match('@^[^/]+://[^/][email protected]', $_SERVER['HTTP_REFERER'], $match)) {
var_dump($match[0]);
}
或者你可以使用parse_url
function。
3
你應該能夠使用the parse_url function實現這一
相關問題
- 1. 如何提取一次URL的方案和主機?
- 2. Bash:從URL字符串中提取方案和主機部分
- 3. 如何從Perl中的URL中提取方案,主機和端口?
- 4. 是否有可能通過mod_rewrite從HTTP_REFERER獲取主機名?
- 5. 提出提取和案例類提取
- 6. 提取主機從路徑
- 7. 提取的主機名
- 8. 解決方案主機200GB的數據和提供聚合的JSON API?
- 9. 廉價主機方案上的PHP/LDAP
- 10. Yeoman子發電機:使用主發電機提示的答案
- 11. Android意圖過濾器mimetype和主機/方案
- 12. 在Sitefinity控制器中查找URL方案和主機名
- 13. 與方案和主機意圖過濾器不工作
- 14. 使用java.util.Scanner打印出方案主機和路徑
- 15. 如何使用Boost tcp :: iostream指定方案,主機和端口
- 16. IE8和HTTP_REFERER
- 17. $ _SERVER ['HTTP_REFERER']和$ HTTP_REFERER有什麼區別?
- 18. 圖案提取
- 19. :依靠$ _SERVER ['HTTP_REFERER']變量來檢查主機域是否安全?
- 20. PHP後退按鈕的最終HTTP_REFERER解決方案?
- 21. 正則表達式來提取主機
- 22. 從主機名提取子域
- 23. 發佈提取數據替代方案()
- 24. 快速的方法來提取檔案
- 25. 從python中的URL中提取方案
- 26. 後臺提取替代方案
- 27. 從WSS提取解決方案文件
- 28. $ _ SERVER [ 'HTTP_REFERER'] VS Request.ServerVariables( 「HTTP_REFERER」)
- 29. Android 3.1意圖過濾器主機方案與http方案問題
- 30. 如何在ruby中處理URL以提取組件部分(方案,用戶名,密碼,主機等)?
一點題外話,只是一句話:這樣,你會被
scheme
與host
結合建立你的最終值引用站點並不總是由客戶端發送(可以禁用它,例如),和它可以僞造。所以,不要把任何關鍵的功能(也不是以安全爲導向)放在它上面! – 2009-07-17 18:16:57@PascalMARTIN完好的建議。但是,我認爲可以通過HTTP POST請求來檢查$ _SERVER中的HTTP_REFERER(或使用filter_input()/ filter_input_array())。 – 2015-12-16 16:04:05