我需要检查文件夹中包含'_'
符号的文件。我已经使用glob函数从服务器位置获取文件。但我不知道检查文件名包含文件名中任何位置的符号。
我的文件名称如下格式。 student_178_grade1A
我这样做了。
$report_files=glob( '/user_uploads/' . '/reportcards/' . 'term' . '_' . 10.'/*'.'.pdf' );
//this will return all files inside the folder.
if(count(report_files)>0)
{
//some stuff
}
else
{
}
我需要获取包含' _'的文件。在filename.I尝试
glob( '/user_uploads/' . '/reportcards/' . 'term' . '_' . 10.'/*[_]'.'.pdf' );
但它不起作用
答案 0 :(得分:3)
你的正则表达似乎不正确。这可能会做你想要的:
// Find any file in the directory "/user_uploads/reportcards/term_10/"
// that has the file extension ".pdf"
$report_files = glob("\/user_uploads\/reportcards\/term\_10\/(.*)\.pdf");
// Find any file in the directory "/user_uploads/reportcards/term_10/"
// containing the character "_".
$report_files = glob("\/user_uploads\/reportcards\/term\_10\/(.*)\_(.*)");
// Find any file in the directory "/user_uploads/reportcards/term_10/"
// that has the file extension ".pdf" and contains the "_" character
$report_files = glob("\/user_uploads\/reportcards\/term\_10\/(.*)\_(.*)\.pdf");
如果您不完全了解正则表达式的作用,我会快速总结下面的内容。还有一个很棒的网站可以尝试定期展示如何构建它们的文档here。
\/ = escapes the / character
\_ = escapes the _ character
\. = escapes the . character
(.*) = matches any character, number etc
答案 1 :(得分:1)
首先,你在学期结束后忘记了一个引号。
$report_files = glob('/user_uploads/'.'/reportcards/'.'term'.'_'.10.'/*[_]'.'.pdf');
其次,在user_uploads
之后你有两个斜杠。
$report_files = glob('/user_uploads/reportcards/'.'term'.'_'.10.'/*[_]'.'.pdf');