Php get current host

$_SERVER

$_SERVER is an array containing information such as headers, paths, and script locations. The entries in this array are created by the web server, therefore there is no guarantee that every web server will provide any of these; servers may omit some, or provide others not listed here. However, most of these variables are accounted for in the » CGI/1.1 specification, and are likely to be defined.

Note: When running PHP on the command line most of these entries will not be available or have any meaning.

In addition to the elements listed below, PHP will create additional elements with values from request headers. These entries will be named HTTP_ followed by the header name, capitalized and with underscores instead of hyphens. For example, the Accept-Language header would be available as $_SERVER[‘HTTP_ACCEPT_LANGUAGE’] .

Читайте также:  Comparison java and python

Indices

‘ PHP_SELF ‘ The filename of the currently executing script, relative to the document root. For instance, $_SERVER[‘PHP_SELF’] in a script at the address http://example.com/foo/bar.php would be /foo/bar.php . The __FILE__ constant contains the full path and filename of the current (i.e. included) file. If PHP is running as a command-line processor this variable contains the script name. ‘argv’ Array of arguments passed to the script. When the script is run on the command line, this gives C-style access to the command line parameters. When called via the GET method, this will contain the query string. ‘argc’ Contains the number of command line parameters passed to the script (if run on the command line). ‘ GATEWAY_INTERFACE ‘ What revision of the CGI specification the server is using; e.g. ‘CGI/1.1’ . ‘ SERVER_ADDR ‘ The IP address of the server under which the current script is executing. ‘ SERVER_NAME ‘ The name of the server host under which the current script is executing. If the script is running on a virtual host, this will be the value defined for that virtual host.

Note: Under Apache 2, UseCanonicalName = On and ServerName must be set. Otherwise, this value reflects the hostname supplied by the client, which can be spoofed. It is not safe to rely on this value in security-dependent contexts.

‘ SERVER_SOFTWARE ‘ Server identification string, given in the headers when responding to requests. ‘ SERVER_PROTOCOL ‘ Name and revision of the information protocol via which the page was requested; e.g. ‘HTTP/1.0’ ; ‘ REQUEST_METHOD ‘ Which request method was used to access the page; e.g. ‘GET’ , ‘HEAD’ , ‘POST’ , ‘PUT’ .

Note:

PHP script is terminated after sending headers (it means after producing any output without output buffering) if the request method was HEAD .

‘ REQUEST_TIME ‘ The timestamp of the start of the request. ‘ REQUEST_TIME_FLOAT ‘ The timestamp of the start of the request, with microsecond precision. ‘ QUERY_STRING ‘ The query string, if any, via which the page was accessed. ‘ DOCUMENT_ROOT ‘ The document root directory under which the current script is executing, as defined in the server’s configuration file. ‘ HTTPS ‘ Set to a non-empty value if the script was queried through the HTTPS protocol. ‘ REMOTE_ADDR ‘ The IP address from which the user is viewing the current page. ‘ REMOTE_HOST ‘ The Host name from which the user is viewing the current page. The reverse dns lookup is based on the REMOTE_ADDR of the user.

Note: The web server must be configured to create this variable. For example in Apache HostnameLookups On must be set inside httpd.conf for it to exist. See also gethostbyaddr() .

‘ REMOTE_PORT ‘ The port being used on the user’s machine to communicate with the web server. ‘ REMOTE_USER ‘ The authenticated user. ‘ REDIRECT_REMOTE_USER ‘ The authenticated user if the request is internally redirected. ‘ SCRIPT_FILENAME ‘

The absolute pathname of the currently executing script.

Note:

If a script is executed with the CLI, as a relative path, such as file.php or ../file.php , $_SERVER[‘SCRIPT_FILENAME’] will contain the relative path specified by the user.

‘ SERVER_ADMIN ‘ The value given to the SERVER_ADMIN (for Apache) directive in the web server configuration file. If the script is running on a virtual host, this will be the value defined for that virtual host. ‘ SERVER_PORT ‘ The port on the server machine being used by the web server for communication. For default setups, this will be ’80’ ; using SSL, for instance, will change this to whatever your defined secure HTTP port is.

Note: Under Apache 2, UseCanonicalName = On , as well as UseCanonicalPhysicalPort = On must be set in order to get the physical (real) port, otherwise, this value can be spoofed, and it may or may not return the physical port value. It is not safe to rely on this value in security-dependent contexts.

‘ SERVER_SIGNATURE ‘ String containing the server version and virtual host name which are added to server-generated pages, if enabled. ‘ PATH_TRANSLATED ‘ Filesystem- (not document root-) based path to the current script, after the server has done any virtual-to-real mapping.

Note: Apache 2 users may use AcceptPathInfo = On inside httpd.conf to define PATH_INFO .

‘ SCRIPT_NAME ‘ Contains the current script’s path. This is useful for pages which need to point to themselves. The __FILE__ constant contains the full path and filename of the current (i.e. included) file. ‘ REQUEST_URI ‘ The URI which was given in order to access this page; for instance, ‘ /index.html ‘. ‘ PHP_AUTH_DIGEST ‘ When doing Digest HTTP authentication this variable is set to the ‘Authorization’ header sent by the client (which you should then use to make the appropriate validation). ‘ PHP_AUTH_USER ‘ When doing HTTP authentication this variable is set to the username provided by the user. ‘ PHP_AUTH_PW ‘ When doing HTTP authentication this variable is set to the password provided by the user. ‘ AUTH_TYPE ‘ When doing HTTP authentication this variable is set to the authentication type. ‘ PATH_INFO ‘ Contains any client-provided pathname information trailing the actual script filename but preceding the query string, if available. For instance, if the current script was accessed via the URI http://www.example.com/php/path_info.php/some/stuff?foo=bar , then $_SERVER[‘PATH_INFO’] would contain /some/stuff . ‘ ORIG_PATH_INFO ‘ Original version of ‘ PATH_INFO ‘ before processed by PHP.

Examples

Example #1 $_SERVER example

Источник

5 Ways to Retrieve the Current URL Host using PHP: A Comprehensive Guide

Learn how to retrieve the current URL host using PHP with this comprehensive guide. Explore built-in functions and variables, including $_SERVER, parse_url(), and preg_match(). Improve the security and performance of your website today.

As a web developer, it is common to need to retrieve the current URL host for various tasks such as setting cookies, redirecting users, or processing requests. PHP provides several built-in functions and variables that can help you retrieve the current URL host in different ways. In this blog post, we will explore the five most common ways to retrieve the current URL host using PHP.

Using the $_SERVER variable

The $_SERVER variable in PHP is a superglobal variable that provides information about the current page. It contains data such as headers, paths, and script locations. One of the indices of the $_SERVER variable is HTTP_HOST, which contains the hostname of the server that is serving the current request. You can use this index to retrieve the current URL host in PHP.

Here is an example code snippet that shows how to use the $_SERVER variable to retrieve the current URL host:

Using the parse_url() function

The parse_url() function in PHP can be used to retrieve different parts of a URL. It parses a URL and returns an associative array that contains its various components such as scheme, host, path, and query. You can use the PHP_URL_HOST constant to retrieve the current URL host from the output of the parse_url() function.

Here is an example code snippet that shows how to use the parse_url() function to retrieve the current URL host:

$url = "https://www.example.com/index.php"; $host = parse_url($url, PHP_URL_HOST); 

Using the preg_match() function

The preg_match() function in PHP can be used with regular expressions to extract parts of a string. You can use this function to extract the current URL host from the $_SERVER[’HTTP_HOST’] variable.

Here is an example code snippet that shows how to use the preg_match() function to extract the current URL host:

preg_match('/^(?:http(?:s)?:\/\/)?(?:[^@\/\n]+@)?(?:www\.)?([^:\/\n]+)/im', $_SERVER['HTTP_HOST'], $matches); $host = $matches[1]; 

Combining different URL parts

PHP provides several functions for working with different parts of a URL, such as parse_url(), http_build_url(), and implode(). You can use these functions to combine different parts of the URL to obtain the complete URL of the current page.

Here is an example code snippet that shows how to combine different URL parts to obtain the complete URL of the current page:

$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http"; $url = $protocol . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 

Additional information from the $_SERVER variable

The $_SERVER variable in PHP provides information on headers, paths, scripts, user agents, request methods, and more. This information can be used to further customize the behavior of your PHP application.

Here are some examples of how to use additional information from the $_SERVER variable:

// Get the user agent of the current request $user_agent = $_SERVER['HTTP_USER_AGENT'];// Get the request method of the current request $request_method = $_SERVER['REQUEST_METHOD']; 

Other PHP code samples for retrieving current URL host

In Php case in point, php get current url host code example

In Php , for instance, php current url code example

 $currentUrl = $_SERVER['REQUEST_URI'];

In Php , php get current page url code sample

In Php case in point, php current url code example

function url_origin( $s, $use_forwarded_host = false ) < $ssl = ( ! empty( $s['HTTPS'] ) && $s['HTTPS'] == 'on' ); $sp = strtolower( $s['SERVER_PROTOCOL'] ); $protocol = substr( $sp, 0, strpos( $sp, '/' ) ) . ( ( $ssl ) ? 's' : '' ); $port = $s['SERVER_PORT']; $port = ( ( ! $ssl && $port=='80' ) || ( $ssl && $port=='443' ) ) ? '' : ':'.$port; $host = ( $use_forwarded_host && isset( $s['HTTP_X_FORWARDED_HOST'] ) ) ? $s['HTTP_X_FORWARDED_HOST'] : ( isset( $s['HTTP_HOST'] ) ? $s['HTTP_HOST'] : null ); $host = isset( $host ) ? $host : $s['SERVER_NAME'] . $port; return $protocol . '://' . $host; >function full_url( $s, $use_forwarded_host = false ) < return url_origin( $s, $use_forwarded_host ) . $s['REQUEST_URI']; >$absolute_url = full_url( $_SERVER ); echo $absolute_url;

Conclusion

Retrieving the current URL host using PHP is a common task that can be accomplished using several built-in functions and variables. The $_SERVER variable, parse_url() function, and preg_match() function can be used to retrieve the current URL host. PHP provides several functions for working with different parts of a URL, and the $_SERVER variable provides additional information that can be used to customize your application. By following best practices and keeping your PHP version and dependencies up to date, you can ensure the security and performance of your website.

Frequently Asked Questions — FAQs

What is the $_SERVER variable in PHP?

The $_SERVER variable in PHP is a superglobal variable that provides information about the current page, including the current URL host.

How can I use the parse_url() function to retrieve the current URL host?

You can use the parse_url() function in PHP with the PHP_URL_HOST constant to retrieve the current URL host. Example code: $url = «https://www.example.com/index.php»; $host = parse_url($url, PHP_URL_HOST);

Can I use regular expressions to extract parts of a URL in PHP?

Yes, you can use the preg_match() function in PHP with regular expressions to extract parts of a URL, including the current URL host.

What are some best practices for customizing my PHP application with URL information?

Some best practices for customizing your PHP application with URL information include using functions like parse_url() and http_build_url(), keeping your PHP version and dependencies up to date, and implementing secure coding practices.

How can I ensure the security and performance of my website with PHP?

You can ensure the security and performance of your website with PHP by following best practices, updating your PHP version and dependencies, using secure coding practices, and implementing measures like SSL certificates and password protection.

Can I use the $_SERVER variable in PHP to retrieve information on request methods?

Yes, the $_SERVER variable in PHP provides information on request methods, including GET, POST, and PUT.

Источник

Оцените статью