html代码

函数中用到了php内置函数pathinfo,包蕴了转移文书名的主意

7 2月 , 2020  

网络也许有成百上千看似的不二等秘书诀,可是都留存那样那样的不稳扎稳打的难点,本文就不风流倜傥一解析了,这里只交付最正确的利用php
获取文件扩张名的办法。

课程有无尽,但并未人发清除粤语文件名的题材,还也会有便是后缀的获得,

function get_extension{ return pathinfo($filename,PATHINFO_EXTENSION); } 

$form->image=CUploadedFile::getInstance($form->model, ‘image’);
$randName=date(‘Ymdhis’).rand(100,999).’.’.$form->model->image->getExtensionName();
$form->model->image->saveAs(Yii::app()->basePath.’/../upload/’.$randName);

函数中用到了php内置函数pathinfo
那些函数,上边剖析一下那么些函数的情致和用法:概念和用法pathinfo()函数以数组的样式重返文件路线的新闻。语法pathinfo

那是关键代码,获取图像以往,用saveAs改动存款和储蓄到upload路线下,包括了变通文书名的办法。
getExtensionName(State of Qatar是CUploadedFile中的public函数,可收获文件格式,即后缀。但不带.的啊

注明:pathinfo(卡塔尔 重临多少个暗含有 path
音信的关周密组。数组成分包蕴以下值:[dirname][basename][extension]例如:

php原生写法

上述将出口如下结果

第1种方法:

Array( [dirname] => /testweb [basename] => test.txt [extension] => txt)

function get_extension($file)
{
substr(strrchr($file, ‘.’),
1);
}
第2种方法:

上述就是为我们大快朵颐的正确接收php
获取文件扩充名的形式,希望大家钟爱,并学有所用。

function get_extension($file)
{
return substr($file, strrpos($file, ‘.’)+1);
}
第3种方法:

function get_extension($file)
{
return end(explode(‘.’,
$file));
}
第4种方法:

function get_extension($file)
{
$info = pathinfo($file);
return $info[‘extension’];
}

第5种方法:

function get_extension($file)
{
return pathinfo($file, PATHINFO_EXTENSION);
}

以上二种艺术粗看了一下,好像都行,特别是1、2种方法,在自个儿不知晓pathinfo有第二个参数早前也一贯在用。可是细心考虑一下,前二种艺术都有各式各样的病魔。要想完全正确获取文件的恢弘名,应当要能管理以下二种分外情况。
从未公文扩张名

渠道中富含了字符.,如/home/test.d/test.txt
路径中带有了字符.,但文件没有扩展名。如/home/test.d/test
很明朗:1、2无法管理第二种情状,3不能准确管理第生龙活虎二种境况。4得以精确管理,可是在不设有扩充名时,会时有爆发一个告诫。只有第5种艺术才是最科学的艺术。顺便看一下pathinfo方法。官方网站络介绍如下:
$file_path = pathinfo(‘/www/htdocs/your_image.jpg’);

echo “$file_path [‘dirname’]\n”;
echo “$file_path [‘basename’]\n”;
echo “$file_path [‘extension’]\n”;
echo “$file_path [‘filename’]\n”; // only in PHP 5.2+
它会回去一个数组,满含最多七个因素,可是并不会直接有八个,比如在一贯不扩大名的状态下,就不会有extension成分存在,所以第4种办法才会发觉警报。可是phpinfo还帮衬第二个参数。能够传递多个常量,内定再次来到某豆蔻梢头局地的数额:
PATHINFO_DIRNAME – 目录
PATHINFO_函数中用到了php内置函数pathinfo,包蕴了转移文书名的主意。BASENAME – 文件名(含扩张名)
PATHINFO_EXTENSION – 扩展名
PATHINFO_FILENAME – 文件名(不含扩充名,PHP>5.2)
这多个常量的值分别是1、2、4、8,刚以前笔者还以为能够经过或运算内定多少个:
pathinfo($file, PATHINFO_EXTENSION | PATHINFO_FILENAME);
新生察觉这么极度,那只会回来多少个拓宽或运算常量中型小型小的的特别。也正是四个标识位中最小位为1的常量

function get_extension($filename){
 return pathinfo($filename,PATHINFO_EXTENSION);
}

函数中用到了 php 内置函数 pathinfo
那些函数,上边剖判一下那几个函数的意趣和用法:

概念和用法

pathinfo(卡塔尔国 函数以数组的款式重回文件路线的音信。

语法

pathinfo(path,options)

表达:pathinfo(卡塔尔 重回叁个包蕴有 path
消息的关全面组。数组成分包涵以下值:

[dirname]
[basename]
[extension]

金沙国际唯一官网网址 ,例如:

<?php
print_r(pathinfo(“/testweb/test.txt”));
?>

如中将出口如下结果:

Array(
 [dirname] => /testweb
 [basename] => test.txt
 [extension]www.2979.com , => txt
)

自然在上传时那样是不安全了,大家能够拓宽更深远的决断如拿到上传文件的花色并非后来缀名来决断文件类型了.

, , , ,


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图