检查文件名是否唯一,如果没有则添加整数并保留扩展名

时间:2018-02-23 17:22:43

标签: php string

我正在尝试编写一段代码来检查我的文件名是否唯一,如果它没有返回附加了整数的文件名。 所以基本上,如果在我的数据库中我已经有" airco.jpg"在它。

现在,如果我使用" airco.jpg"运行该功能作为输入,我希望它返回 " airco_1.jpg&#34 ;.下一个将是" airco_2.jpg"等等......

这是我到目前为止的代码,它返回" airco.jpg_1"因为文件扩展名。我知道如何切断它,但我不知道如何再次添加它......

function return_unique_filename($filename) {
    //Remove the extension
    //$filename = pathinfo($filename, PATHINFO_FILENAME);

    $CI = get_instance();
    $CI->load->model('vacancy/vacancies_model');

    if (!$CI->vacancies_model->doesFilenameExist($filename)) {
        return $filename;
    }

    $counter = 1;
    while ($CI->vacancies_model->doesFilenameExist($filename . "_" . $counter)) {
        $counter++;
    }

    return $filename . "_" . $counter;
}

1 个答案:

答案 0 :(得分:1)

您已经注释掉了文件名部分,您只需要调整它以获得扩展名。

$file = "a.jpg";
$filename = pathinfo($file, PATHINFO_FILENAME);
$ext = pathinfo($file, PATHINFO_EXTENSION);