<?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面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
(1).在PHP中可以查看的环境变量包括: (1.1).电脑环境变量 (2.1).服务器环境变量(2).getenv()函数获取一个环境变量的值.参数1是环境变量的key,参数2值为true的时候仅从你的电脑环境变量中查找,参数2值为false会从两种变量中全部查询//获取我电脑登录的用户名,输出A...
<?php /** * @throws Exception */ function curl() { throw new \Exception('err...
在项目下的composer配置文件修改(PaySdk是我这里一个支付sdk的目录,包含各种各样的支付sdk,这样写的意思让composer自动把PaySdk下的所有文件自动加载):"autoload": { &...
有时候我们需要爬一个接口,但是这个接口需要很多参数,包括header和cookie要去编写,使用php curl模拟实在太慢。我们可以通过浏览器的network来复制请求为curl命令。例如我需要模拟请求接口地址:https://www.xkmz.cc/Ajax/Debug/delly,我们只需要在...