在PHP开发中,获取文件的扩展名是一件非常常见的操作。在本篇文章中,我们会为大家详细介绍如何使用PHP获取文件扩展名,并且提供一个实际的案例。让我们一起来了解吧!
1. 什么是文件扩展名
在电脑中,文件名是用来标识文件的名称。而扩展名则是用来标识文件类型的。扩展名是指文件名中的最后一个"."后面的部分。例如,文件名为"example.txt",那么"txt"就是该文件的扩展名。扩展名通常用于文件类型的识别和文件的关联程序的启动。
2. 使用PHP获取文件扩展名
在PHP中,我们可以通过一些内置的函数轻松地获取文件的扩展名。下面是一些常用的函数:
1. pathinfo()函数
pathinfo()函数可以返回一个关联数组,包含路径的信息。可以使用该函数获取文件的扩展名。以下是该函数的用法:
$file = 'example.txt';
$ext = pathinfo($file, PATHINFO_EXTENSION);
echo $ext;
运行上面的代码,输出结果为"txt"。
2. strrchr()函数
strrchr()函数返回一个字符串在另一个字符串中最后一次出现的位置以及其后面的字符。可以使用该函数获取文件的扩展名。以下是该函数的用法:
$file = 'example.txt';
$ext = strrchr($file, '.');
echo $ext;
运行上面的代码,输出结果为".txt"。如果想要去掉".",可以使用substr()函数截取字符串:
$file = 'example.txt';
$ext = strrchr($file, '.');
$ext = substr($ext, 1);
echo $ext;
这次输出结果就变为了"txt"。
3. 实例:保存文件并获取扩展名
现在,我们来讲解一个实际的案例,演示如何在PHP中保存文件并获取文件的扩展名。
以下是代码:
if(isset($_POST['submit'])){
$file = $_FILES['file'];
$fileName = $file['name'];
$fileExt = strtolower(end(explode('.', $fileName)));
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];
$allowed = array('jpg', 'jpeg', 'png', 'gif');
if(in_array($fileExt, $allowed)){
if($fileError === 0){
if($fileSize < 1000000){
$fileNameNew = uniqid('', true).".".$fileExt;
$fileDest = "uploads/".$fileNameNew;
move_uploaded_file($fileTmpName, $fileDest);
echo "File uploaded successfully!";
}
else{
echo "Your file is too big!";
}
}
else{
echo "There was an error uploading your file!";
}
}
else{
echo "You cannot upload files of this type!";
}
}
通过上述代码,可以实现对用户上传文件的控制:检验文件类型和大小。
这段代码中,首先通过$_FILES超级全局变量获取上传的文件,然后通过explode()函数分离出文件名中的扩展名,使用strtolower()函数将扩展名转换为小写。接着,检查上传的文件是否是允许的类型,如果满足条件,将文件保存在uploads文件夹中,通过拼接文件名,生成一个唯一的文件名。
最后,通过判断上传的文件是否成功、是否超过文件大小和文件类型是否合适,来反馈给用户上传文件的结果。
4. 总结
在本文中,我们详细介绍了如何在PHP中获取文件的扩展名,并且提供了一个实际的案例。通过本篇文章,相信大家对如何获取文件扩展名有了更深的了解和掌握。