It is very simple to obtain the URL address of the current page in PHP. Let me summarize for you an example of using related functions to obtain the URL address of the complete page.
PHP’s predefined variable $_SERVER is an array containing headers, path information and script location. The entities of the array are created by the web server.
Using the $_SERVER array, we can get the full path and real path of the URL, allowing us to use them as we wish.
$_SERVER['SERVER_NAME'] // The name of the server host where the script is currently running.
$_SERVER[SERVER_PORT'] //The port used by users to connect to the server.
$_SERVER['REQUEST_URI'] //The request URL of the currently running script except the host name.
$_SERVER['DOCUMENT_ROOT'] //The document root directory where the currently running script is located.
Example URL: http://xsooo.com/Test/Test.php
$_SERVER['SERVER_NAME']: xsooo.com
$_SERVER['SERVER_PORT'] : 80
$_SERVER['REQUEST_URI'] : /Test/Test.php
$_SERVER['DOCUMENT_ROOT'] : /home/var/www/xsooo.com/htdocs
So the full URL path is:
The code is as follows
|
Copy code
|
||||
echo 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>
1. The default http port is 80, so generally $_SERVER['SERVER_PORT'] does not include the full URL path. Of course, special cases will be treated specially!
This is a "superglobal", or can be described as an automatic global variable. This just means that it works in all scripts. You do not need to use global $_SERVER; to access it within a function or method, as you would with $HTTP_SERVER_VARS. $HTTP_SERVER_VARS contains the same information, but is not an automatic global variable. (Note: $HTTP_SERVER_VARS and $_SERVER are different variables, and PHP handles them differently.) These variables are also available in all scripts if the register_globals directive is set; that is, the $_SERVER and $HTTP_SERVER_VARS arrays are separated.
|
$_SERVER['SCRIPT_FILENAME'] It will return the absolute path information of the current file
true