<?php /** * 将base64字符串创建为图片文件 * @param string $base64 base64原始字符串 * @param string $path 保存文件的目录 * @param string $filename 文件名(不要带格式后缀) * @return array 成功:state 1 filename:返回的文件名 失败:state 2 err:返回详细错误 */ function createBase64($base64, $path, $filename) { $res = []; //匹配base64字符串格式 if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64, $result)) { //保存最终的图片格式 $postfix = $result[2]; $base64 = base64_decode(substr(strstr($base64, ','), 1)); $filename = $filename . '.' . $postfix; $path = $_SERVER["DOCUMENT_ROOT"] . $path . $filename; //创建图片 if (file_put_contents($path, $base64)) { $res['state'] = 1; $res['filename'] = $filename; } else { $res['state'] = 2; $res['err'] = 'Create img failed!'; } } else { $res['state'] = 2; $res['err'] = 'Not base64 char!'; } return $res; } //前端传来的base64,ajax发送的base64请不要做任何处理 $base64 = $_POST['base64']; var_dump($base64); //返回结果state=1的时候就是成功,错误信息在err中 var_dump(createBase64($base64, '/', 'girl'));
PHP的session文件夹默认保存在同一个文件,随着访客的增多,访问的速度会非常慢,例如部分管理系统后台每天登陆1000次,1个月就创建了30000个session文件,一年后是多少?假设这个系统的用户是上万人呢?方法1:每个网站使用自己的session文件夹,代码如下:<?php $pat...
php官方的超全局变量$_SERVER['PHP_SELF']也能直接获取,只不过如果url参数太多也会获取。下面提供一个方法获取/* * 获取当前PHP文件名称 */ if (!function_exists('phpself...
PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:trait exts { public f...
(1).前端文件:<form action="upload.php" method="post" enctype="multipart/form-data"> &...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
(1)swoole启动的主进程是master进程负责全局管理,然后master进程会再fork一个manager进程。(2)manager进程开始统一管理进程创建回收管理。(3)manager进程根据设置的worker_num和task_worker_num来创建work进程和task进程因此启动s...