我喜欢用PHP来获取目录中的所有文件名,除非文件名包含某个单词,例如" thumbnail"。
这就是我获取所有图像文件名的方法:
$images = glob($imagesDir . $albumName . '/' . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
所以我试过了:
$images = glob($imagesDir . $albumName . '/' . '^(?!thumbnail$).*.{jpg,jpeg,png,gif}', GLOB_BRACE);
显然它不会返回任何东西。我不熟悉PHP中的正则表达式。我做错了吗?
答案 0 :(得分:3)
使用preg_grep()
,您可以使用正则表达式排除包含" thumbnail" ..
$images = array_values(preg_grep('/^(?!.*thumbnail).*$/', glob($imagesDir . $albumName . '/' . '*.{jpg,jpeg,png,gif}', GLOB_BRACE)));
答案 1 :(得分:2)
正则表达式,仅匹配不包含单词can be a bit difficult的字符串,并且通常效率低下。使用正则表达式和PHP的组合可能是最好的选择。这样的事情应该做:
$images = glob($imagesDir . $albumName . '/' . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$images = array_filter($images, function($s) { return strpos($s,'thumbnail') === false; });
此外,我最诚挚的抱歉让我的答案的第一部分押韵超过预期。