检查文件在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中是不是存在正则表达式[重复]的主要内容,如果未能解决你的问题,请参考以下文章

检查文件中是不是存在所有多个字符串或正则表达式

正则表达式确定文件是不是为 sql 文件 [重复]

正则表达式检查是不是存在确切的字符串

检查是不是存在与正则表达式匹配的数组键

如何检查我的字符串是不是与正则表达式匹配 - Swift 3 [重复]

Pandas Dataframe 使用正则表达式检查值是不是存在