做项目遇到个问题,需要把所有的不符合命名规则的文件跳出来,例如包含空格的,包含中文的,包含大写字母的。
Laravel 5.1里面可以直接运用遍历,具体方法如下:
public function allFiles() {$files = Storage::allFiles('levelData');foreach ($files as $key => $value) {$a1 = explode('.', $value);if (preg_match('/[A-Z]/', $a1[1])) {$daxie[] = $value;}if (preg_match('/\s+/', $value)) {$space[] = $value;}#匹配中文if (preg_match('/[\x{4e00}-\x{9fa5}]+/u', $value)) {$hanzi[] = $value;}}echo "<pre>";echo '<h1>有大写字母的:</h1>';print_r($daxie);echo '<h1>有空格的:</h1>';print_r($space);echo '<h1>有汉字的:</h1>';print_r($hanzi);echo "</pre>";}
运行的时候报错了,说是目录超出了root范围,查了下资料,需要修改:
我直接改到了web服务器根目录。问题解决:
D:\phpStudy\WWW\xx\config\filesystems.php
'disks' => ['local' => ['driver' => 'local','root' => 'D:/phpStudy/WWW',// 'root' => storage_path('app'),],
在线正则匹配:
/regex/#
/