//参数1 文件名 参数2 缩放比例 function _thumb($_filename,$_percent){ ob_clean(); //生成png标头文件 header('Content-type:image/png'); $_n=explode('.', $_filename); //获取文件的信息,宽和高 list($_width,$_height)=getimagesize($_filename); //生成缩略后的大小 $_new_width=$_width*$_percent; $_new_height=$_height*$_percent; //按照新的大小创建微缩画布 $_new_image=imagecreatetruecolor($_new_width, $_new_height); //按照已经有的图片创建一个画布[按照图片类型] switch($_n[1]){ case 'jpg':$_image=imagecreatefromjpeg($_filename); break; case 'png':$_image=imagecreatefrompng($_filename); break; case 'gif':$_image=imagecreatefromgif($_filename); break; } //将原来的图复制到新的图片上 imagecopyresampled($_new_image, $_image, 0, 0, 0, 0, $_new_width, $_new_height, $_width, $_height); //输出图片 imagepng($_new_image); //销毁新资源句柄 imagedestroy($_new_image); //销毁原资源句柄 imagedestroy($_image); }
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /** * 订单任务 */ class Order { &n...
【一】.迭代器迭代是指反复执行一个过程,每执行一次叫做一次迭代。比如下面的代码就叫做迭代:1. <?php 2. $data = ['1', '2', &...
有时候我们需要爬一个接口,但是这个接口需要很多参数,包括header和cookie要去编写,使用php curl模拟实在太慢。我们可以通过浏览器的network来复制请求为curl命令。例如我需要模拟请求接口地址:https://www.xkmz.cc/Ajax/Debug/delly,我们只需要在...
第一次听说端口复用是在mixphp最新版本中发现的,mixphp启动监听9501端口,现在作者说可以多开几个进程来执行mixphp,我心里想了下再启动不是会端口冲突嘛,但是却没有问题,于是下载mixphp的源码解读,原来是启动http服务器使用new Co\Http\Server('0.0....
PHP7中,通过生成器委托(yield from),可以将其他生成器、可迭代的对象、数组委托给外层生成器。外层的生成器会先顺序 yield 委托出来的值,然后继续 yield 本身中定义的值。同时yield from也能获取到生成器的返回值...