2024年1月11日发(作者:)

文件名校验正则表达式

在PHP中,你可以使用正则表达式来校验文件名。下面是一些示例代码,演示了如何使用正则表达式来限制文件名的规则:

限定文件名不含中文:

php

$filename = '';

if (!preg_match('/[^x{4e00}-x{9fa5}]/u', $filename)) {

echo '文件名包含中文';

} else {

echo '文件名不包含中文';

}

上述代码使用了Unicode范围x{4e00}-x{9fa5}来匹配中文字符。如果文件名中包含中文字符,preg_match()函数将返回1,否则返回0。

限定文件名含有特定字符:

php

$filename = 'example_';

if (preg_match('/_file/', $filename)) {

echo '文件名包含特定字符 "_file"';

} else {

echo '文件名不包含特定字符 "_file"';

}

上述代码中的正则表达式/_file/用于匹配包含特定字符"_file"的文件名。

限定扩展名为.xls、.txt、.doc等:

php

$filename = '';

$allowed_extensions = array('xls', 'txt', 'doc');

$extension = pathinfo($filename, PATHINFO_EXTENSION);

if (in_array($extension, $allowed_extensions)) {

echo '文件名扩展名允许';

} else {

echo '文件名扩展名不允许';

}

上述代码使用pathinfo()函数获取文件名的扩展名,并使用in_array()函数检查扩展名是否在允许的扩展名数组中。如果扩展名在允许的列表中,则输出"文件名扩展名允许",否则输出"文件名扩展名不允许"。

请注意,这些示例代码只是演示了如何使用正则表达式来校验文件名的一部分规则。你可以根据自己的需求修改和组合这些代码来适应特定的校验规则。