上午在做一个需求时,需要利用 php 在后端获取页面的完整地址,以前不少做这样的需求所以记录了一些常用到的函数,就发表一下。有需要的拿去吧!
php获取当前页面完整的url地址的方法
示例1
<?phpfunction getpageurl() {$pageURL = 'http';if(isset($_SERVER['HTTPS']) && $_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;}?>
调用方法:
<?phpecho getpageurl();?>
注意:
1、$_SERVER['HTTPS'] 变量在 HTTPS 链接的情况下, 一些个别的服务器环境中会返回 null,要特别注意一下 (以后会单独的出一篇博文讲一下)
2、上面的函数会返回完整的url地址,包括提交的参数。
示例2:
<?phpfunction get_url() {$sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';$php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];$path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';$relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : $path_info);return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;}?>
php 获取当前页面的url地址不包括参数的方法教程
上面给出两个关于php获取页面完整url地址的函数,会将url中提交的参数也一并获取到,如果我们只单单的获取一个地址而不需要参数的话,可以参考下面的示例!
示例代码:
<?phpfunction getpageurl_t() {$pageURL = 'http';if(isset($_SERVER['HTTPS']) && $_SERVER["HTTPS"] == "on"){$pageURL .= "s";}$pageURL .= "://";$this_page = $_SERVER["REQUEST_URI"];//过滤要提交的参数if(strpos($this_page, "?") !== false){$this_pages = explode("?", $this_page);$this_page = reset($this_pages);}if ($_SERVER["SERVER_PORT"] != "80") {$pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $this_page;}else{$pageURL .= $_SERVER["SERVER_NAME"] . $this_page;}return $pageURL;}?>
函数调用:
<?phpecho getpageurl_t() ;?>
php中其它关于获取url地址的操作方法
你可以参考下面 php 中关于对url地址的一些操作方法来实现自己的需求!
<?php//测试网址: http://localhost/blog/ss.php?id=10//获取域名或主机地址echo $_SERVER['HTTP_HOST']."<br>"; // localhost//获取网页地址echo $_SERVER['PHP_SELF']."<br>"; // blog/ss.php//获取网址参数echo $_SERVER["QUERY_STRING"]."<br>"; // id=10//获取用户代理echo $_SERVER['HTTP_REFERER']."<br>";//获取完整的urlecho 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];// http://localhost/blog/ss.php?id=10//包含端口号的完整urlecho 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];// http://localhost:80/blog/ss.php?id=10//只取路径$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];echo dirname($url);// http://localhost/blog?>