php 从 url 中删除文件名(如果存在)
php remove filename from url if exists
你好,我想从我的 url 中删除所有文件名:
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)
你可以试试dirname()
echo dirname('http://website.com/folder1/folder2/filename.php');
假设所有文件名都有扩展名:
$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;
}
这是不可能的,因为你无法检查 Whosebug.de/post.new/tero.php 是一个文件名还是一个文件夹...
在这种情况下,使用检查来检查给定路径是否为 url 或
你好,我想从我的 url 中删除所有文件名:
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)
你可以试试dirname()
echo dirname('http://website.com/folder1/folder2/filename.php');
假设所有文件名都有扩展名:
$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;
}
这是不可能的,因为你无法检查 Whosebug.de/post.new/tero.php 是一个文件名还是一个文件夹...
在这种情况下,使用检查来检查给定路径是否为 url 或