PHP获取当前页面的URL
2019獨角獸企業重金招聘Python工程師標準>>>
?????使用PHP編寫程序的時候,我們常常想要獲取當前頁面的URL。下面提供一個用于獲取當前頁面URL的函數以及使用方法:
示例一:
<?php // 說明:獲取完整URLfunction curPageURL() {$pageURL = 'http';if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}$pageURL .= "://";if ($_SERVER["SERVER_PORT"] != "80") {$pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];} else {$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];}return $pageURL; } ?>
? 定義該函數之后就可以直接調用了:
| 1 2 3 | <?php ? echo curPageURL ( ) ; ?> |
?????上面的函數可以獲取當前頁面完整的URL,即你在瀏覽器地址欄看到的內容。但是,有時候我們不想要URL中的參數( ? 號后面的內容),如:http://www.ludou.org/hello.html?u=123,只想獲取http://www.ludou.org/hello.html,你可以將以上函數做以下更改:
示例二:
<?php // 說明:獲取無參數URLfunction curPageURL() {$pageURL = 'http';if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}$pageURL .= "://";$this_page = $_SERVER["REQUEST_URI"];// 只取 ? 前面的內容if (strpos($this_page, "?") !== false) $this_page = reset(explode("?", $this_page));if ($_SERVER["SERVER_PORT"] != "80") {$pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $this_page;} else {$pageURL .= $_SERVER["SERVER_NAME"] . $this_page;}return $pageURL; } ?>
當然也可以采用 $_SERVER['PHP_SELF'] (該變量不返回URL中的參數),
示例三:
<?php // 說明:獲取無參數URLfunction curPageURL() {$pageURL = 'http';if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}$pageURL .= "://";if ($_SERVER["SERVER_PORT"] != "80") {$pageURL .= $_SERVER["SERVER_NAME"].":" . $_SERVER["SERVER_PORT"] . $_SERVER['PHP_SELF'];} else {$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER['PHP_SELF'];}return $pageURL; } ?>
另外,$_SERVER['REQUEST_URI'] 和 $_SERVER['REQUEST_URL'] 是有稍微區別的:
$_SERVER["REQUEST_URI"] 返回完整的路徑 ( /directory/file.ext?query=string )
$_SERVER['REQUEST_URL'] 只返回文件路徑,不包括參數,( /directory/file.ext ),和$_SERVER['PHP_SELF']差不多,只不過在有些服務器上$_SERVER['REQUEST_URL']不可用!
?????注意:URL使用rewrite規則的時候,$_SERVER['PHP_SELF']和$_SERVER["REQUEST_URL"]可能不會返回你想要的東西
?????最后提醒一點,$_SERVER["REQUEST_URI"] 只有 apache 才支持,想要一個獲取 $_SERVER['REQUEST_URI'] 值的通用解決方案,可以使用以下方案:
<?php // 說明:獲取 _SERVER['REQUEST_URI'] 值的通用解決方案 // 來源:drupal-5.1 bootstrap.inc // 整理:http://www.codebit.cn/pub/html/php_mysql/tip/other/request_urifunction request_uri() {if (isset($_SERVER['REQUEST_URI'])){$uri = $_SERVER['REQUEST_URI']; }else{if (isset($_SERVER['argv'])){$uri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['argv'][0];}else{$uri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['QUERY_STRING'];}}return $uri; } ?>
轉載于:https://my.oschina.net/kalcaddle/blog/32575
總結
以上是生活随笔為你收集整理的PHP获取当前页面的URL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站bin目录下的不可以放配置文件或其他
- 下一篇: PHP函数之CURL: 常见问题总结