这是否获取路径的文件扩展名?它构成了文件上传脚本的一部分,该脚本继续检查$end是否为"jpg“,而不是其他内容。考虑到我在下面所拥有的,这可以被绕过吗?
$temp = strlen($path);
$end = $path[$temp-3] . $path[$temp-2] . $path[$temp-1];发布于 2012-12-24 22:30:58
看看:http://php.net/manual/en/function.pathinfo.php
混合路径int ( string $path,int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME )
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n"; # returns: /www/htdocs/inc
echo $path_parts['basename'], "\n"; # returns: lib.inc.php
echo $path_parts['extension'], "\n"; # returns: php
echo $path_parts['filename'], "\n"; # returns: lib.inc | since PHP 5.2.0
?>或者,您可以将标志设置为仅获取扩展名,如下所示:
$extension = pathinfo('/www/htdocs/inc/lib.inc.php', PATHINFO_EXTENSION);
echo $extension; # prints `php` to the screen.发布于 2012-12-24 22:34:40
如果您希望确保上传的图像有效,请不要依赖文件结尾,因为文件结尾可能会被篡改。您可以使用PHP图像函数来确保文件确实是图像,例如:
function is_image($path) {
$a = getimagesize($path);
$image_type = $a[2];
if(in_array($image_type , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG , IMAGETYPE_BMP)))
{
return true;
}
return false;
}发布于 2012-12-24 22:32:19
尝尝这个,
$ext = pathinfo('abc.jpeg' ,PATHINFO_EXTENSION);https://stackoverflow.com/questions/14022573
复制相似问题