我有$_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. 廉價主機方案上的PHP/LDAP
- 7. 與方案和主機意圖過濾器不工作
- 8. 在Sitefinity控制器中查找URL方案和主機名
- 9. 使用java.util.Scanner打印出方案主機和路徑
- 10. IE8和HTTP_REFERER
- 11. PHP後退按鈕的最終HTTP_REFERER解決方案?
- 12. 從主機名提取子域
- 13. 從WSS提取解決方案文件
- 14. 從python中的URL中提取方案
- 15. 後臺提取替代方案
- 16. Android 3.1意圖過濾器主機方案與http方案問題
- 17. $ _ SERVER [ 'HTTP_REFERER'] VS Request.ServerVariables( 「HTTP_REFERER」)
- 18. 如何在ruby中處理URL以提取組件部分(方案,用戶名,密碼,主機等)?
- 19. 複合主鍵方案
- 20. 使用不同的主機名和方案使用Swagger JSON API定義
- 21. 帶有'不同'SMTP主機解決方案的sendmail:專業和缺點
- 22. 共享主機高內存和I/O使用率。 Cpanel解決方案?
- 23. 包含該方案但不包含權限(主機名)的URL?
- 24. com.solacesystems.jms.ConfigurationException:主機「null://x.x.x.x:x」中的無效方案「null」
- 25. 共享主機的ASP.NET報告替代方案
- 26. 從c#調用本地主機解決方案
- 27. 將FluorineFx解決方案部署到主機
- 28. 草稿/跳棋應用的最佳主機解決方案
- 29. 尋找持續集成主機或替代解決方案
- 30. Azure服務總線主機名衝突解決方案
一點題外話,只是一句話:這樣,你會被
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