首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -抓取路径的文件扩展名

PHP -抓取路径的文件扩展名
EN

Stack Overflow用户
提问于 2012-12-24 22:28:54
回答 3查看 190关注 0票数 0

这是否获取路径的文件扩展名?它构成了文件上传脚本的一部分,该脚本继续检查$end是否为"jpg“,而不是其他内容。考虑到我在下面所拥有的,这可以被绕过吗?

代码语言:javascript
复制
$temp = strlen($path);
$end = $path[$temp-3] . $path[$temp-2] . $path[$temp-1];
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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 )

代码语言:javascript
复制
<?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
?>

或者,您可以将标志设置为仅获取扩展名,如下所示:

代码语言:javascript
复制
$extension = pathinfo('/www/htdocs/inc/lib.inc.php', PATHINFO_EXTENSION);
echo $extension; # prints `php` to the screen.
票数 6
EN

Stack Overflow用户

发布于 2012-12-24 22:34:40

如果您希望确保上传的图像有效,请不要依赖文件结尾,因为文件结尾可能会被篡改。您可以使用PHP图像函数来确保文件确实是图像,例如:

代码语言:javascript
复制
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;
 }
票数 2
EN

Stack Overflow用户

发布于 2012-12-24 22:32:19

尝尝这个,

代码语言:javascript
复制
$ext = pathinfo('abc.jpeg' ,PATHINFO_EXTENSION);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14022573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档