检查文件在php中是不是存在正则表达式[重复]
Posted
技术标签:
【中文标题】检查文件在php中是不是存在正则表达式[重复]【英文标题】:check file exist with regular expression in php [duplicate]检查文件在php中是否存在正则表达式[重复] 【发布时间】:2014-07-13 08:25:11 【问题描述】:我在服务器上上传了带有客户 ID 的图像。但我不想两次上传多种格式的文件(例如,客户 id=1 应该只有一张图片,即 1.jpg 或 1.png)
如何在更新图像时全局检查该文件是否已经存在?
我可以在没有文件扩展名的情况下检查文件是否存在?
我正在使用这个命令来检查文件。
file_exists('./media/customer-id/'.$cus_id);
【问题讨论】:
检查我发布的链接中的duplicate answer。您需要使用glob()
。 @Gumbo 的This comment 准确回答了您的问题。确保您搜索该网站以避免发布重复的问题。
【参考方案1】:
您可以为此使用glob()
并计算结果。
function patternExists($pattern)
return count(glob($pattern)) > 0;
并像这样使用
if (patternExists("./media/customer-id/".$cus_id."*"))
// bad!
【讨论】:
请注意,glob()
在某种程度上是一个准正则表达式。 ?
匹配除 /
之外的任何字符的 1,*
匹配除 /
之外的任何字符的 0 或多个。不过,+1 是一个简单的解决方案。
@Sam thx,我已将其重命名为使用 php 的公式
@kingkero:如何在不知道扩展名的情况下在浏览器中查看该图像。【参考方案2】:
使用scandir()
运行类似ls
的命令并接收目录内容数组。然后遍历文件,看看是否有任何与客户 ID 匹配的内容。
$exists = false;
foreach(scandir('./media/customer-id') as $file)
if(preg_match('/^' . $customer_id . '\.$/', $file))
$exists = true;
break;
【讨论】:
以上是关于检查文件在php中是不是存在正则表达式[重复]的主要内容,如果未能解决你的问题,请参考以下文章