Do you want to return only the filename of the page on the server without the directory listing as well.
1. First we assign the variable $self which uses $_SERVER['PHP_SELF'] to return the filename with the directory
$self = $_SERVER['PHP_SELF'];
2. Next we remove everything before the last instance of “/” as everything after this is our file name, everything before is our directory. We are using strrchr which takes everything in $self from the last position of “’/”.
$str2use = strrchr($self,'/');
3. Now we find the length of the string and minus 1 from this to remove the “/”.
$length = strlen($str2use)-1;
4. Lastly we use substr to return part of the string, we know the string starts with “/” so we want everything after this so we set the start vaule as 1, as 0 is where “/” is located and use the length of the string we already have. Hey presto you are just returning the filename now.
@$fname = substr($str2use, 1, $length);
The @ sign is used incase $_SERVER['PHP_SELF']; does not return a directory only the filename, ensuring that it will still work regardless.
Here is the code, with variables and also below is the code without the variables just the functions.
<?PHP
$self = $_SERVER['PHP_SELF'];
$str2use = strrchr($self,'/');
$length = strlen($str2use)-1;
@$fname = substr($str2use, 1, $length);
echo "$fname";
?>
<?PHP
@$fname=substr(strrchr($_SERVER['PHP_SELF'],'/'), -(strlen(strrchr($_SERVER['PHP_SELF'],'/')) -1));
?>