<?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')); header() 函数向客户端发送原始的 HTTP 报头。(官方解释)通俗的讲header函数将参数中的字符串作为服务端的响应头来返回给客户端。什么是服务端的响应头?打开谷歌浏览器看看network中的请求response header信息即可。更多的参数百度response header即可浏览器...
源码:特别适用于微信支付中通知微信支付网关function array2xml($arr, $level = 1) { $s = $level == 1 ? "<xml&g...
array_merge是最常用的数组合并方法,+号同样也可以,但是却有很大不同。array_merge遇到相同字符串key,后面数组的key会覆盖前面数组的key,+号正好相反。$a = [ 'one' => 'A on...
PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:trait exts { public f...
(1).前端文件:<form action="upload.php" method="post" enctype="multipart/form-data"> &...
<?php //php7+ define('CONFIG', [ 'MYSQL' => '127.0.0.1',  ...