这是检查文件是否存在的正确方法吗?
Is this the correct way of checking if a file exists?
我正在尝试检查文件(图像)是否存在,以便在上传新文件之前删除它。这是我到目前为止尝试过的:
foreach (glob("../imgs/" . $name . ".*") as $file) {
if (file_exists($file)) {
unlink($file);
}
}
这是正确的做法吗?如果找到匹配项,我是否需要打破循环?如果该文件夹中有很多图片,这会不会很糟糕?
编辑:抱歉,我应该提一下:上传文件时会使用用户唯一 ID 重命名,这就是为什么如果用户想要上传另一张图片,我想将其替换为现有图片。 (此图片用于个人资料图片)。
如果你想打破循环在 unlink()
函数之后添加一个 break statement
作为:
foreach (glob("../imgs/" . $name . ".*") as $file) {
if (file_exists($file)) {
unlink($file);
break;
}
}
如果要检查 PHP 文件仅存在:
您可以使用file_exist()
功能。此函数returns TRUE
如果文件存在,否则returns FALSE
.
$filename = './file_name.txt';
if(file_exists($filename)){
echo sprintf('file %s exists',$filename);
}else{
echo sprintf('file %s does not exist',$filename);
}
如果要检查 PHP 文件是否存在且可读:
您可以使用is_readable()
功能。函数 returns TRUE
如果文件存在且可读,否则 returns FALSE
.
$filename = './file_name.txt';
if(is_readable($filename)){
echo sprintf('file %s exists and readable',$filename);
}else{
echo sprintf('file %s does not exist or is not readable',$filename);
}
如果要检查 PHP 文件是否存在且可写:
您可以使用is_writable()
函数。函数 returns TRUE
如果文件存在且可写,否则 returns FALSE
.
$filename = './file_name.txt';
if(is_writable($filename)){
echo sprintf('file %s exists and writable',$filename);
}else{
echo sprintf('file %s does not exist or is not writable',$filename);
}
是的,我觉得你的方法不错。它很可能比获取所有文件名并使用正则表达式检查名称更快。
正如 Gufran 在他的评论中提到的那样,在取消链接后放置一个中断,因此循环不会继续搜索。
仅执行此操作,如果您不打算查找该名称的多个文件(即 test.gif、test.png),则必须将其保留。
我正在尝试检查文件(图像)是否存在,以便在上传新文件之前删除它。这是我到目前为止尝试过的:
foreach (glob("../imgs/" . $name . ".*") as $file) {
if (file_exists($file)) {
unlink($file);
}
}
这是正确的做法吗?如果找到匹配项,我是否需要打破循环?如果该文件夹中有很多图片,这会不会很糟糕?
编辑:抱歉,我应该提一下:上传文件时会使用用户唯一 ID 重命名,这就是为什么如果用户想要上传另一张图片,我想将其替换为现有图片。 (此图片用于个人资料图片)。
如果你想打破循环在 unlink()
函数之后添加一个 break statement
作为:
foreach (glob("../imgs/" . $name . ".*") as $file) {
if (file_exists($file)) {
unlink($file);
break;
}
}
如果要检查 PHP 文件仅存在:
您可以使用file_exist()
功能。此函数returns TRUE
如果文件存在,否则returns FALSE
.
$filename = './file_name.txt';
if(file_exists($filename)){
echo sprintf('file %s exists',$filename);
}else{
echo sprintf('file %s does not exist',$filename);
}
如果要检查 PHP 文件是否存在且可读:
您可以使用is_readable()
功能。函数 returns TRUE
如果文件存在且可读,否则 returns FALSE
.
$filename = './file_name.txt';
if(is_readable($filename)){
echo sprintf('file %s exists and readable',$filename);
}else{
echo sprintf('file %s does not exist or is not readable',$filename);
}
如果要检查 PHP 文件是否存在且可写:
您可以使用is_writable()
函数。函数 returns TRUE
如果文件存在且可写,否则 returns FALSE
.
$filename = './file_name.txt';
if(is_writable($filename)){
echo sprintf('file %s exists and writable',$filename);
}else{
echo sprintf('file %s does not exist or is not writable',$filename);
}
是的,我觉得你的方法不错。它很可能比获取所有文件名并使用正则表达式检查名称更快。
正如 Gufran 在他的评论中提到的那样,在取消链接后放置一个中断,因此循环不会继续搜索。 仅执行此操作,如果您不打算查找该名称的多个文件(即 test.gif、test.png),则必须将其保留。