Reputation: 2157
I want to get a URL and its parameters. Example:
www.someweb.com/somepage.php?id=10
How to get only somepage.php?id=10
?
I'm already tried REQUEST_URI
and PHP_SELF
but it only gives me www.someweb.com/somepage.php
or somepage.php
. What I want to is just the page name and its parameter(s).
Upvotes: 43
Views: 140793
Reputation: 7942
Here's a very thorough function I use to get the full URL:
function get_full_url( bool $include_query = true ) {
$protocol = ( ! empty( $_SERVER['HTTPS'] ) && strtolower( $_SERVER['HTTPS'] ) !== 'off' )
|| ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && strtolower( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) === 'https' )
|| ( ! empty( $_SERVER['HTTP_FRONT_END_HTTPS'] ) && strtolower( $_SERVER['HTTP_FRONT_END_HTTPS'] ) !== 'off' )
|| ( isset( $_SERVER['SERVER_PORT'] ) && intval( $_SERVER['SERVER_PORT'] ) === 443 ) ? 'https' : 'http';
$uri = $protocol . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
return $include_query ? $uri : str_replace( '?' . $_SERVER['QUERY_STRING'], '', $uri );
}
Upvotes: 0
Reputation: 2157
basename($_SERVER['REQUEST_URI']);
This will return all URLs with page name. (e.g.: index.php?id=1&name=rr&class=10
).
Upvotes: 80
Reputation: 842
for complette URL with protocol, servername and parameters:
$base_url = ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'];
$url = $base_url . $_SERVER["REQUEST_URI"];
Upvotes: 33
Reputation: 577
$_SERVER['PHP_SELF']
for the page name and $_GET['id']
for a specific parameter.
try print_r($_GET);
to print out all the parameters.
for your request echo $_SERVER['PHP_SELF']."?id=".$_GET['id'];
return all the parameters echo $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
Upvotes: 8
Reputation: 1867
Here's probably what you are looking for: php-get-url-query-string. You can combine it with other suggested $_SERVER
parameters.
Upvotes: 0
Reputation: 1303
function curPageName() {
return substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1);
}
echo "The current page is ".curPageName()."?".$_SERVER['QUERY_STRING'];
This will get you page name , it will get the string after the last slash
Upvotes: 1