首页 > 解决方案 > 检查数组元素中是否有任何禁止的扩展

问题描述

我想检查数组元素中是否有任何禁止的扩展。怎么做?

$allowed_types = array('jpg', 'jpeg');
Array
(
   [0] => C:/xampp/htdocs/blog/media/images/1597335125_1.jpg
   [1] => C:/xampp/htdocs/blog/media/images/1597335125_2.jpg
   [2] => C:/xampp/htdocs/blog/media/images/1597335125_3.jpg
   [3] => C:/xampp/htdocs/blog/media/images/1597335125_4.jpg
   [4] => C:/xampp/htdocs/blog/media/images/1597335125_5.png
)

标签: phparrays

解决方案


有多种方法,您可以使用pathinfo()例如这里:

$allowed_types = array('jpg', 'jpeg');

$files = [
   "C:/xampp/htdocs/blog/media/images/1597335125_1.jpg",
   "C:/xampp/htdocs/blog/media/images/1597335125_2.jpg",
   "C:/xampp/htdocs/blog/media/images/1597335125_3.jpg",
   "C:/xampp/htdocs/blog/media/images/1597335125_4.jpg",
   "C:/xampp/htdocs/blog/media/images/1597335125_5.png",
];

$not_allowed_files = array_filter($files, function($var) use ($allowed_types) {
    $path_info = pathinfo($var);
    return !in_array($path_info['extension'], $allowed_types);
});

(未测试)


推荐阅读