我正在用已有的代码来处理PHP中的目录删除,有一种功能可以保留某些目录,该功能使用preg_grep来查看glob()中的目录列表是否与该模式匹配。但是,我已经对其进行了测试,它似乎根本无法正常工作,至少在Windows上无法正常工作
我对regex并不是很熟悉,但是在我看来,问题出在Windows在路径中使用反斜杠的方式。
foreach( $dirs_to_preserve as $dir_to_preserve) {
$matches = preg_grep( "#^$dir_to_preserve$#", $dirs)
该函数正在获取以下参数:
$dirs = [ 'C:\xampp\htdocs\test/cache/domain.com/en' ];
$dirs_to_preserve = [ 'C:\xampp\htdocs\test/cache/domain.com(.*)/en' ];
$ dirs_to_preserve数组是由PHP生成的,清除缓存时,正在从glob()中读取$dirs
,上面的数据应该匹配,尽管应该删除{/ { 1}}为空。