你好我想从我的网址中删除所有文件名:
http://website.com/folder1/folder2/filename.php
这是我尝试过的:
$file_info = pathinfo('http://website.com/folder1/folder2/filename.php');
echo $file_info['dirname'];
输出http://website.com/folder1/folder2/这就是我想要的,但当我尝试这个时:
$file_info = pathinfo('http://website.com/folder1/folder2/');
echo $file_info['dirname'];
输出http://website.com/folder1/。
现在我想要的是如果url包含文件名然后它被删除,如果url只有文件夹,那么什么都不做
(我不想为此使用.htaccess)
答案 0 :(得分:1)
假设所有文件名都有扩展名:
$url1 = 'http://website.com/folder1/folder2/filename.php';
$url2 = 'http://website.com/folder1/folder2/';
echo removeFilename($url1) . "\n";
echo removeFilename($url2) . "\n";
function removeFilename($url)
{
$file_info = pathinfo($url);
return isset($file_info['extension'])
? str_replace($file_info['filename'] . "." . $file_info['extension'], "", $url)
: $url;
}
答案 1 :(得分:0)
您可以尝试使用dirname()
echo dirname('http://website.com/folder1/folder2/filename.php');
答案 2 :(得分:0)
这是不可能的,因为你无法检查stackoverflow.de/post.new/tero.php是文件名还是文件夹......
在这种情况下使用检查来检查给定路径是否是网址