php 获取文件后缀名,并判断是否合法的函数

 更新时间:2017年08月23日 18:30:55   投稿:mdxy-dxy  
有时候我们后台需要设置用户只能上传指定后缀名的文件,那么就可以使用下面的代码了

核心代码

/**
 * 获取文件后缀名,并判断是否合法
 *
 * @param string $file_name
 * @param array $allow_type
 * @return blob
 */
function get_file_suffix($file_name, $allow_type = array())
{
  $file_suffix = strtolower(array_pop(explode('.', $file_name)));
  if (empty($allow_type))
  {
    return $file_suffix;
  }
  else
  {
    if (in_array($file_suffix, $allow_type))
    {
      return true;
    }
    else
    {
      return false;
    }
  }
}

上面的对于php5.3以上的版本会报错Strict Standards: Only variables should be passed by reference in。所以脚本之家小编换了如下方法

<?php
/**
 * 获取文件后缀名,并判断是否合法
 *
 * @param string $file_name
 * @param array $allow_type
 * @return blob
*/
function get_file_suffix($file_name, $allow_type = array())
{
  $fnarray=explode('.', $file_name);
	$file_suffix = strtolower(array_pop($fnarray));
  if (empty($allow_type))
  {
    return $file_suffix;
  }
  else
  {
    if (in_array($file_suffix, $allow_type))
    {
      return true;
    }
    else
    {
      return false;
    }
  }
}

$allow_wj="jpg,gif,png,jpeg";
$allow=explode(",",$allow_wj); 

if (get_file_suffix("sakjdfk1.jpg",$allow)){
echo "ok";
}else{
echo "no";
}

如此就解决了,希望大家以后多多支持脚本之家。

相关文章

  • PHP基于自定义函数生成笛卡尔积的方法示例

    PHP基于自定义函数生成笛卡尔积的方法示例

    这篇文章主要介绍了PHP基于自定义函数生成笛卡尔积的方法,结合具体实例形式分析了php使用数组运算模拟集合实现笛卡尔积运算的相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • php多进程并发编程防止出现僵尸进程的方法分析

    php多进程并发编程防止出现僵尸进程的方法分析

    这篇文章主要介绍了php多进程并发编程防止出现僵尸进程的方法,结合具体实例形式总结分析了php多进程并发编程防止出现僵尸进程相关操作技巧与注意事项,需要的朋友可以参考下
    2020-02-02
  • php实现在多维数组中查找特定value的方法

    php实现在多维数组中查找特定value的方法

    这篇文章主要介绍了php实现在多维数组中查找特定value的方法,实例分析了php实现多维数组的遍历及unset删除的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP采用curl模仿用户登陆新浪微博发微博的方法

    PHP采用curl模仿用户登陆新浪微博发微博的方法

    这篇文章主要介绍了PHP采用curl模仿用户登陆新浪微博发微博的方法,较为详细的分析了curl模仿用户登陆新浪微博的原理与方法,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • php基于SQLite实现的分页功能示例

    php基于SQLite实现的分页功能示例

    这篇文章主要介绍了php基于SQLite实现的分页功能,结合具体实例形式分析了php操作SQLite数据库实现分页功能的相关技巧与注意事项,需要的朋友可以参考下
    2017-06-06
  • PHP标准类(stdclass)用法示例

    PHP标准类(stdclass)用法示例

    这篇文章主要介绍了PHP标准类(stdclass)用法,结合实例形式分析了php内置标准类的原理与使用方法,需要的朋友可以参考下
    2016-09-09
  • PHP常用操作类之通信数据封装类的实现

    PHP常用操作类之通信数据封装类的实现

    PHP类的封装对于初学者来说是比较难懂的,下面这篇文章主要给大家介绍了关于PHP常用操作类之通信数据封装类实现的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来一起学习学习吧。
    2017-07-07
  • PHP读取XML格式文件的方法总结

    PHP读取XML格式文件的方法总结

    这篇文章主要介绍了PHP读取XML格式文件的方法,结合实例形式总结分析了php针对xml格式文件的读取、解析、加载、遍历等操作技巧,需要的朋友可以参考下
    2017-02-02
  • PHP借助phpmailer发送邮件

    PHP借助phpmailer发送邮件

    phpmailer是一款免费的php邮件发送插件,我们可以利用phpmailer登录到我们指定的邮件然后再利用这个邮件给我们自动发邮件了,这个现在免费的邮箱像163,sina都支持,好了费话不说多了来看看一段phpmainer 163邮件发送邮件吧。
    2015-05-05
  • 使用PHP 5.0创建图形的巧妙方法

    使用PHP 5.0创建图形的巧妙方法

    本文将展示如何使用 PHP 构建面向对象(的)图形层。使用面向对象(的)系统可以用来构建复杂(的)图形,这比使用标准 PHP 库中所提供(的)基本功能来构建图形简单(很)多。
    2010-10-10

最新评论