备份下代码<?php namespace Lib\Library; use Closure; use Exception; /**  * 文件锁  * 1.阻塞,进程加锁时发现其他进程已经加锁会一直阻塞等待,一直等到可以加锁成功,然后去执行业务代码  * 2.非阻塞,进程加锁时发现其他进程已经加锁直接返回,不会执行业务代码  * 3.注意Erp默认Ses
安装扩展这部分直接看我的另外一篇文章,地址是:https://gaojiufeng.cn/?id=353php连接sqlserver方式有4种:pdo sqlsrv_connect odbc com前面两种方式会依赖微软给的驱动版本,也依赖于固定版本的sqlserver,例如sqlserver2000只能在php5.3版本使用。而com和odbc不用限制。例如我的php7.3连接sqlserver2000的代码:// 连接SQL $sql = ico
本来也知道其工作原理,但是php仅支持命名管道,且windows下不支持命名管道。RoadRunner官方说默认就是管道,我想看看windows下如何实现,于是看了下源码。执行流程如下:(1).启动go进程,go创建http-server,同时go调用php ./xxx.php 开启多个php命令行进程(2).当go进程接收到http消息,通过标准输入传递给php命令行进程(3).php读取进程的标准输入数据,php返回的数据写入到标准输出(4).go进程读取到php进程的标准输出响应客户端当然
创建shell脚本任务su -s /bin/bash - www <<EOF 编写你的命令,支持换行 EOF例如我的自动发布任务su -s /bin/bash - www <<EOF cd /www/wwwroot/learn/ git fetch --all git reset --hard origi
php://memory伪协议,包装器将数据以文件形式来操作,而底层通过内存保存的形式。简单来说就是让你能通过操作文件的形式来读写内存,方便不?---如果你的码农生涯也在迷茫,不如忙起来,因为忙起来什么都忘记了echo sprintf("使用前内存%.2fMB" . PHP_EOL, (memory_get_usage() / 1024 / 1024)); // 读写形式申请内存协
在tp5版本的时候日志中保存了全部的请求信息,保存了请求地址 请求方法 请求路由  请求头  请求参数,但是在tp6中官方取消了。官方解释说由于日志记录了所有的运行错误,因此养成经常查看日志文件的习惯,可以避免和及早发现很多的错误隐患。但是我觉得不方便我定位线上问题,于是把tp5源码中的部分移植到tp6中,tp5中大部分放在tp底层,为了不破坏tp框架我把代码放到中间件中进行继承,所有中间件全部继承此代码。自动记录请求信息。<?php declare (st
mysqli提供了异步执行sql的功能,类似于select轮询机制。先提交SQL到预发布,再去轮询查询是否ok。query的时候加上MYSQLI_ASYNC选项,query就直接提交到mysql,但是本身不等待执行结果。mysqli不亏是加强版的mysql扩展,可惜不是pdo<?php /**  * 执行SQL  * @param $sql  * @return mysqli  */ fu
<?php //  读取带BOM的文件(记事本创建a.txt,保存选择Utf8) $text = file_get_contents('./a.txt'); //  二进制的BOM头转16进制输出 echo strtoupper(bin2hex($text)); //  例如UTF8输出EFBBBFPHP本身不忽略BOM头,但是也不处理BOM头,所以大家曾经都遇到
PHP开发者基本都是万能var_dump,很少echo对象,echo对象默认会报错.echo对象时默认会自动调用魔术方法__toString蹭点百度流量// 1.Object of class a could not be converted to string (报错) /* class  a{ } $a = new a();
<?php //获得信号量的方法 $execute = function () {     //(1).创建IPC通信KEY     $key = ftok(__FILE__, 'a');     //(2).获取一个信号量资源句柄    &nb

Top