如何准备主题字符串以伪造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;
答案 0 :(得分:0)
pathinfo
是您正在寻找的
$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;
}
这应该是一个很好的例子。