根据您的操作系统和文件夹中文件的大小,您可以采用几种不同的方式.最简单的方法是使用glob():
$safer = escapeshellarg( $_REQUEST['search'] );
$results = glob( "$dir/*$safer*" );
Run Code Online (Sandbox Code Playgroud)
这应该给你与该目录中的"ls*something*"相同的结果.
如果你有一个更具体的搜索模式和目录中适度的文件大小,scandir()会给你一个你可以使用preg_match()的数组.
如果您有大量文件,可以考虑利用/ usr/bin/locate或/ usr/bin/find.来自php的这些shell执行会导致系统负载.如果您有大量学生或面向公众的搜索,那么您将需要采用不同的方法.