I need to find the file name of the file I've included without the GET parameters.
e.g.: if the current URL is http://www.mysite.com/folder/file.php?a=b&c=d , i want file.php returned
what I have found:
basename($_SERVER['REQUEST_URI'])
which returns:
file.php?a=b&c=d
in my case: I'm using the filename in a form in the section for my cart, so at the moment each time you click the 'reduce number of product' button it adds the GET params of the form (productId and action) to the end of the URL: file.php?a=b&c=d?a=b&c=d?a=b&c=d?a=b&c=d...
I know I could simply explode or something similar on '?'
$file = explode("?", basename($_SERVER['REQUEST_URI']))
and use the first part of the array, but I seem to recall something easier, however cannot locate the code again..
I'm new to PHP so explanation on your code would be appreciated.
Thanks, V
Take a look at some of the other values in
$_SERVER
.Maybe
$_SERVER["PHP_SELF"]
or$_SERVER["SCRIPT_NAME"]
will return what you want.This will do it.
In addition it is always good to know some given variables. The following snippet in a php file is really useful.
Have you tried a simple
basename(__FILE__);
? This will get you the filename of where the code is located, as it is on disk.For getting the requested file, you can use
basename($_SERVER['SCRIPT_NAME']);
. This will always get the file that was requested, rather than the file that the code is contained within.This is the closest I've found. Here's how I did it:
The only way that you get the name of the script without the parameters is making a POST request
You can make use of parse_url. In your case you could use:
To get only the file name you can do something like this: