php获取当前页面完整URL地址方法
php获取当前页面完整URL地址
这篇文章主要介绍了php获取当前页面完整URL地址的函数
使用PHP编写程序的时候,我们常常想要获取当前页面的URL。下面提供一个用于获取当前页面URL的函数以及使用方法:
示例一:
<?php // 说明:获取完整URL function 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; } ?>
定义该函数之后就可以直接调用了:
<?php echo curPageURL(); ?>
上面的函数可以获取当前页面完整的URL,即你在浏览器地址栏看到的内容。但是,有时候我们不想要URL中的参数( ? 号后面的内容),如:http://www.scutephp.com/hello.html?u=123,只想获取http://www.scutephp.com/hello.html,你可以将以上函数按示例二修改。
示例二:
<?php // 说明:获取无参数URL function curPageURL() { $pageURL = 'http'; if ($_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; } ?>
当然也可以采用 $_SERVER['PHP_SELF'] (该变量不返回URL中的参数),
示例三:
<?php // 说明:获取无参数URL function 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'] 值的通用解决方案 function 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; } ?>
再为大家分享两种解决方法:
第一种方法:
<?php /** * 获取当前页面完整URL地址 */ function 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; } echo get_url(); ?>
第二种方法:
javascript实现
top.location.href 顶级窗口的地址 this.location.href 当前窗口的地址
PHP实现
#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br>"; #localhost //获取网页地址 echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php //获取网址参数 echo $_SERVER["QUERY_STRING"]."<br>"; #id=5 //获取用户代理 echo $_SERVER['HTTP_REFERER']."<br>"; //获取完整的url echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; #http://localhost/blog/testurl.php?id=5 //包含端口号的完整url echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; #http://localhost:80/blog/testurl.php?id=5 //只取路径 $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; echo dirname($url); #http://localhost/blog
希望本文所述对大家学习php程序设计有所帮助。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











PHP is a very popular server-side programming language that is widely used in website development. Among them, file uploading and downloading are one of the commonly used functions of websites, and PHP provides a wealth of functions and techniques to implement these functions. In this article, we will introduce in detail the file upload and download techniques in PHP so that you can develop your website more efficiently. File upload File upload refers to sending files from the local computer to a remote server. After uploading the files, we can store, process and display these files. In PHP

PHP Kuaishou API interface calling tips: How to handle the error information returned by the interface When using PHP to call the Kuaishou API interface, we often encounter situations where the interface returns errors. For error information returned by the processing interface, we need to provide appropriate processing and feedback to improve the stability and user experience of the application. This article will introduce some techniques for handling error information returned by interfaces and provide corresponding code examples. Use try-catch to catch exceptions. When calling the API interface, some exception errors may occur.

With the rapid development of the Internet, more and more websites need to implement data paging functions to improve users' browsing experience. In Web development, PHP is one of the most popular server-side programming languages, and the data paging function is an indispensable technology in PHP development. This article will introduce the application method of paging technology in PHP in the framework, and compare the advantages and disadvantages of different paging solutions. 1. Traditional PHP paging method In traditional PHP development, implementing the data paging function requires writing a lot of code, and it needs to be repeated in each page.

Replacing newlines in PHP is a problem that is often encountered in actual development, especially when processing text data. The newline character may be expressed differently in different operating systems. It is usually "" in Windows systems and "" in Linux systems. Therefore, we need to uniformly process line breaks to ensure that the text data is in a normal format. This article will delve into the technique of replacing newlines in PHP and provide specific code examples. 1. Use PHP built-in functions to process newlines. PHP provides some built-in functions.

PHP Programming Tips: How to Quickly Locate Missing Numbers in an Array In programming, you often encounter situations where you need to check whether certain numbers are missing in an array. At this time, we need a fast and effective way to locate the missing numbers in the array so that they can be processed in a timely manner. This article will introduce a PHP-based programming technique, using specific code examples to demonstrate how to quickly locate missing numbers in an array. 1. Method 1: Use a loop to traverse the array. First, we can check for missing numbers in the array by looping through the array. Specific steps

PHP programming skills: How to handle image scaling In modern web design, images are an integral part, and image scaling is one of the common operations. Whether it is displaying a collection of images or responding to the needs of devices of different sizes, image scaling plays an important role. This article will introduce how to use the PHP programming language to handle image scaling, and attach code examples for reference. 1. Use the GD library for image scaling. The GD library is a powerful image processing library in PHP. We can use it to implement the image scaling function. First, make sure

Analysis of PHP High Concurrency Processing Skills With the development of the Internet, the requirements for concurrent visits to websites are getting higher and higher. As a programming language for developing websites, PHP needs some special processing skills to improve performance and stability when faced with high concurrent access pressure. This article will introduce some PHP high concurrency processing techniques and provide code examples. Use PHP-FPMPHP-FPM (FastCGIProcessManager) is a process manager officially provided by PHP, which can effectively

Master 50 function implementation skills and experience sharing in PHP development. As a PHP developer, we are always pursuing efficient and high-quality code implementation. In order to improve development efficiency and code quality, we need to accumulate some experience and skills to cope with various complex development needs and challenges. In this article, I will share 50 PHP development tips and experiences for implementing various functions, hoping to be helpful to everyone on their PHP development journey. Use an appropriate framework: Choosing and becoming familiar with a PHP framework that suits you can improve development efficiency and
