php8.1引入了了两个函数,分别为fsync和fdatasync,主要是为了PHP提供更强大IO控制能力。我们通常使用fwrite函数来对文件进行写入操作,我们认为该函数一旦返回成功,数据便已经写到了文件中,事实上是不太正确的。文件的write操作,更新的只是内存中的页缓存,而脏页不会立即更新到硬盘中,而是由操作系统统一调度。于是一般情况下我们的写入操作如下:(1).数据复制到其中一个缓冲区中,缓冲区未满不会动(2).缓存区满了再将该缓冲排入到输出队列,数据到达队首时,才进行实际的I/O操作因
本来想用python来写,一看python的代码不就是直接调用adb.exe执行命令吧。直接php不香吗。模拟屏幕滑动命令// 执行adb命令 $command = 'adb shell input swipe 548 1088 105 871'; exec($command, $out_put, $res_code);
想通过采集代理ip来做代理ip池,通过大量的Ip提高seo效果,习惯了正则处理,但是今天有时间测试下queryList,毕竟工欲善其事必先利其器。// 保存全部的代理IP $allProxy = []; // 循环爬取数据 for ($i = 0; $i < 10; $i++) {     // 页码 &
php7.4接入zipkin链路追踪后开始接入php5.6,低版本的包文档缺少我直接用高版本的文档来使用,发现提示我生成的时间戳有问题,检查了下zipkin的包时间戳生成。function now() {     return (int) (microtime(true) * 1000 * 1000); }发现代码没有问题非提示我有问题,直接在php5.6打印时间戳的值398685
自己的小程序api升级到PHP7.4结果报错了。看下原来的代码:$remark = $chargeType == 2 ? 'VIP题库' : $type == 4 ? '历史题库' : '章节题库';是不是看起来很恶心难于理解,不错是我写的,为了快速上线盈利嘛。在买来的小程序中的js代码还有10层以上的套娃写法
备份下代码<?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
在tp5版本的时候日志中保存了全部的请求信息,保存了请求地址 请求方法 请求路由  请求头  请求参数,但是在tp6中官方取消了。官方解释说由于日志记录了所有的运行错误,因此养成经常查看日志文件的习惯,可以避免和及早发现很多的错误隐患。但是我觉得不方便我定位线上问题,于是把tp5源码中的部分移植到tp6中,tp5中大部分放在tp底层,为了不破坏tp框架我把代码放到中间件中进行继承,所有中间件全部继承此代码。自动记录请求信息。<?php declare (st

Top