如何在PHP7.1中使用preg_match查找名称中有点的文件
我想找到所有文件的名称中有一个点(第一个字母)。我的代码:如何在PHP7.1中使用preg_match查找名称中有点的文件,php,Php,我想找到所有文件的名称中有一个点(第一个字母)。我的代码: $dir = ('/public_html/'); $iterator = new RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::CHILD_FIRST); foreach ($iterator as $filename => $
$dir = ('/public_html/');
$iterator = new RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $filename => $fileInfo) {
if ($fileInfo->isDir()) {
//echo $filename . '<br />';
} else {
if (preg_match("/(\A[.].*)/", $filename)) {
echo $filename . '<br/>';
}
}
}
您就快到了,唯一的问题是您使用的变量
$filename
是文件的完整路径。
因此,如果您在哪里查找名为.gitignore
的文件,您将得到/public\u html/.gitignore
您需要的是在$fileInfo
对象上使用方法getFullName()
,然后您将获得确切的文件名,您的正则表达式将正常工作
if (preg_match("/(\A[.].*)/", $fileInfo->getFileName())) {
echo $filename . '<br/>';
}
if(preg_match(“/(\A[.].*)/”,$fileInfo->getFileName()){
回显$filename.“
”;
}
祝你好运:)你不需要
regex来完成这么简单的任务<代码>如果($filename[0]='.')
就足够了。只是想澄清一下-这个副本实际上起了相反的作用,所以你需要改变逻辑。我的英雄。谢谢你的帮助。@AdamNowacki当然,NP:)
if (preg_match("/(\A[.].*)/", $fileInfo->getFileName())) {
echo $filename . '<br/>';
}