如何仅检查文件名而不存在扩展名

时间:2016-02-23 09:21:31

标签: php

如何仅检查文件名而不是jpeg, jpg, doc, xls这样的扩展名。然后复制其完整名称,如example.jpegexample.doc

如果可能的话,我们可以存储其上面的两个父目录,如

如果exam​​ple.jpeg存储在

main_dir/second_dir/example.jpeg 

所以我想在php变量中存储这个路径。

我知道我可以使用glob()

$result = glob ("./uploads/filename.*");

并检查$result值。

但我想存储完整的文件名和可能的两个父目录路径。

以下是我的代码

$filename = '/www/test1/'. $file . '*' ;
if (count(glob($filename)) > 0) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}

修改

根据luweiqi解决方案更新了查询

foreach(glob("/uploads/".$productnumber."/". $productnumber."b.*", GLOB_NOSORT) as $file) {  
        echo "Filename: " . $file . "<br />";      
        $image2 = "/uploads/".$productnumber."/".$file;
    }  

图像的最后一个字母的变化类似于f。所以你可以在其中做一些修正。 我想在uploads / productnumber / productnumber(a / b / c / d / e / f).jpg或png或jpeg等上检查图像,并将该文件名存储在php变量中。

2 个答案:

答案 0 :(得分:1)

您可以使用file_exists()功能。

$pngFile = '/path/to/foo.png';
$docFile = '/path/to/foo.doc';
// Returns TRUE if the file or directory specified by filename exists; FALSE otherwise.
if (file_exists($filename) || file_exists($docFile)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}

OR

使用glob功能

$files=[];
$result = glob ("/path/to/foo.*");  
foreach ($result as $file) { 
     echo "$file size " . filesize($file) . "\n";       
     $files[] = $file; 
} 
echo '<pre>'; print_r($files);

答案 1 :(得分:1)

您可以使用:

<?php

    foreach(glob("../directory/*{a,b,c,e,f}.*", GLOB_BRACE) as $file) {
        echo "Filename: " . $file . "<br />";
    }
?>

此代码将获取文件名并回显它,如果要将其分配给变量,可以相应地更改它。