1

您好,我想从我的 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)

4

3 回答 3

2

假设所有文件名都有扩展名:

$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;
}
于 2015-07-19T16:40:58.993 回答
0

您可以尝试使用dirname()

echo dirname('http://website.com/folder1/folder2/filename.php');
于 2015-07-19T16:03:25.863 回答
0

这是不可能的,因为您无法检查 stackoverflow.de/post.new/tero.php 是文件名还是文件夹...

在这种情况下,使用检查来检查给定的路径是否是 url

于 2015-07-19T16:47:22.767 回答