```
<?php
// 精准获取文件的MIME类型
$mime \= array(
'ai' \=> 'application/postscript',
'eps' \=> 'application/postscript',
'exe' \=> 'application/octet-stream',
'doc' \=> 'application/vnd.ms-word',
'xls' \=> 'application/vnd.ms-excel',
'ppt' \=> 'application/vnd.ms-powerpoint',
'pps' \=> 'application/vnd.ms-powerpoint',
'pdf' \=> 'application/pdf',
'xml' \=> 'application/xml',
'odt' \=> 'application/vnd.oasis.opendocument.text',
'swf' \=> 'application/x-shockwave-flash',
// archives
'gz' \=> 'application/x-gzip',
'tgz' \=> 'application/x-gzip',
'bz' \=> 'application/x-bzip2',
'bz2' \=> 'application/x-bzip2',
'tbz' \=> 'application/x-bzip2',
'zip' \=> 'application/zip',
'rar' \=> 'application/x-rar',
'tar' \=> 'application/x-tar',
'7z' \=> 'application/x-7z-compressed',
// texts
'txt' \=> 'text/plain',
'php' \=> 'text/x-php',
'html' \=> 'text/html',
'htm' \=> 'text/html',
'js' \=> 'text/javascript',
'css' \=> 'text/css',
'rtf' \=> 'text/rtf',
'rtfd' \=> 'text/rtfd',
'py' \=> 'text/x-python',
'java' \=> 'text/x-java-source',
'rb' \=> 'text/x-ruby',
'sh' \=> 'text/x-shellscript',
'pl' \=> 'text/x-perl',
'sql' \=> 'text/x-sql',
// images
'bmp' \=> 'image/x-ms-bmp',
'jpg' \=> 'image/jpeg',
'jpeg' \=> 'image/jpeg',
'gif' \=> 'image/gif',
'png' \=> 'image/png',
'tif' \=> 'image/tiff',
'tiff' \=> 'image/tiff',
'tga' \=> 'image/x-targa',
'psd' \=> 'image/vnd.adobe.photoshop',
//audio
'mp3' \=> 'audio/mpeg',
'mid' \=> 'audio/midi',
'ogg' \=> 'audio/ogg',
'mp4a' \=> 'audio/mp4',
'wav' \=> 'audio/wav',
'wma' \=> 'audio/x-ms-wma',
// video
'avi' \=> 'video/x-msvideo',
'dv' \=> 'video/x-dv',
'mp4' \=> 'video/mp4',
'mpeg' \=> 'video/mpeg',
'mpg' \=> 'video/mpeg',
'mov' \=> 'video/quicktime',
'wm' \=> 'video/x-ms-wmv',
'flv' \=> 'video/x-flv',
'mkv' \=> 'video/x-matroska'
);
function \_getMimeDetect() {
if (class\_exists('finfo')) {
return 'finfo';
} else if (function\_exists('mime\_content\_type')) {
return 'mime\_content\_type';
} else if ( function\_exists('exec')) {
$result \= exec('file -ib '.escapeshellarg(\_\_FILE\_\_));
if ( 0 \=== strpos($result, 'text/x-php') OR 0 \=== strpos($result, 'text/x-c++')) {
return 'linux';
}
$result \= exec('file -Ib '.escapeshellarg(\_\_FILE\_\_));
if ( 0 \=== strpos($result, 'text/x-php') OR 0 \=== strpos($result, 'text/x-c++')) {
return 'bsd';
}
}
return 'internal';
}
function \_getMimeType($path) {
$fmime \= \_getMimeDetect();
switch($fmime) {
case 'finfo':
$finfo \= finfo\_open(FILEINFO\_MIME);
if ($finfo)
$type \= @finfo\_file($finfo, $path);
break;
case 'mime\_content\_type':
$type \= mime\_content\_type($path);
break;
case 'linux':
$type \= exec('file -ib '.escapeshellarg($path));
break;
case 'bsd':
$type \= exec('file -Ib '.escapeshellarg($path));
break;
default:
$pinfo \= pathinfo($path);
$ext \= isset($pinfo\['extension'\]) ? strtolower($pinfo\['extension'\]) : '';
$type \= isset($this\->mime\[$ext\]) ? $this\->mime\[$ext\] : 'unkown';
break;
}
$type \= explode(';', $type);
//需要加上这段,因为如果使用mime\_content\_type函数来获取一个不存在的$path时会返回'application/octet-stream'
if ($fmime != 'internal' AND $type\[0\] \== 'application/octet-stream') {
$pinfo \= pathinfo($path);
$ext \= isset($pinfo\['extension'\]) ? strtolower($pinfo\['extension'\]) : '';
if (!empty($ext) AND !empty($this\->mime\[$ext\])) {
$type\[0\] \= $this\->mime\[$ext\];
}
}
return $type\[0\];
}
```
- PHP收集
- 1、精准获取文件的MIME类型
- 2、获取指定内容的第一张图片做封面
- 3、生成二维码
- 4、HTTP请求(请求微信token有用)
- 5、SQL的安装与卸载、执行
- 6、stdclass 对象转数组
- 7、php调用restfull API
- 8、二维数据排序
- 9、多维数组合并
- 10、API签名与验证
- 11、删除一维数据指定key或者允许
- 12、字符串替换、截取
- 13、返回带数据与状态与状态语的json函数封装
- 14、EXCEL上传下载封装
- 15、循环删除指定目录下的文件与文件夹、创建指定文件夹
- 16、强制把日期或者时间戳转星期几
- 17、检测字符串是否包含某字符串
- 18、获取中文字符拼音首字母
- 19、判断手机、邮箱格式正确否、隐藏手机号码
- 20、TP5把图片、视频、文件上传封装
- 21、生成商品编号/货号/订单号/小票号
- 22、高精度数值添加
- 23、加解密字符串、可逆加解密
- 24、编辑器图片上传验证
- 25、转义单引号
- 26、字符串去重
- 27、Base64加解密
- 28、将空内容设置为特定内容
- 29、判断访问来源
- 30、将字符串转换为时间戳,解决部分服务器时间不能超过2038的问题
- 31、驼峰命名转下划线命名
- 32、写入日志 (使用tp自带驱动记录到runtime目录中
- 33、隐藏敏感字符、隐藏部分字符
- 34、获取全局唯一标识符、生成随机数
- 35、过滤emoji表情
- 36、无限分类 数组转 树形结构
- 37、递归生成分类栏目结构
- 38、判断是否是json字符串
- 39、计算时间差(优化友好时间体验)、格式化月份
- 40、生成缩略图
- 41、敏感词过滤
- 42、获取当前类方法
- 43、取文件目录列表,该方法返回数组
- 44、防XSS注入、SQL盲注入
- JS收集
- 1、获取图片真实宽高
- 2、禁用F12与鼠标右键事件
- 3、安卓播放视频结束出现广告
- 4、TP手机端分页封装
- 5、flex布局,多行最后一行向左排列
- 6、判断移动终端内核
- 7、判断IE浏览器内核
- 8、设置主页与加入收藏
- 9、解决H5微信转发分享特殊符号处理
- CSS收集
- 1、移动IOS的按钮默认样式去除
- 2、超出行数隐藏显示缩略号
- 3、清除浮动
- 4、背景图透明度兼容
- HTML收集
- 1、列表视频
- 小程序
- 1、请求封装
- 2、插件收集
- 问题记录集