如何提取文件扩展名并根据允许的扩展数组进行检查?

时间:2016-01-12 12:59:11

标签: php

如何准备主题字符串以伪造preg_match检查来自$allowed数组的扩展名?目标是使用带扩展名的文件名,该文件不在允许的数组中。我尝试了一些技巧,如UTF8编码和新线注入,但无法实现任务目标。谢谢你,对不起我的英文

    $allowed = array('tst', 'dll');
$filename = basename($test);
if (preg_match('#\.(.+)$#', $filename, $matches) && isset($matches[1]) && !in_array($matches[1], $allowed))
    die("Extension not allowed!");

echo $ext;

1 个答案:

答案 0 :(得分:0)

pathinfo是您正在寻找的

PHP.net

$file_parts = pathinfo($filename);

switch($file_parts['extension'])
{
    case "jpg":
    break;

    case "exe":
    break;

    case "": // Handle file extension for files ending in '.'
    case NULL: // Handle no file extension
    break;
}

这应该是一个很好的例子。