当我们使用php爬虫采集网站时经常会遇到内容使用ajax异步加载。一般采取的方案是PHP模拟再请求api接口获取数据,但是有时候前端js加密非常麻烦,我们需要将js的加密方法转换为php方法方便curl请求。当然通过了解我们可以通过3种方案解决。第一种:使用phpv8js扩展执行js代码。(pecl自行下载安装,windows安装方法http://www.yuzhiwei.com.cn/archives/238.html/comment-page-1)<?php //初始化 $v8&n
最近在项目中处理一个关于商品数据重复需要删除多余的商品记录,但是删除一条商品必然要把关联的其他表商品的id和其他商品信息更换为正确的,删除一个商品记录,同时要去修改100多张表的关联商品数据,在项目中引用了tp orm 1.2版本,由于项目是php5.6版本,没法使用最新orm,在代码中每处理1个商品则开启1个事务,相当于循环的事务,下面的代码做个简单的演示(非真实):$list = Db::table('member')->select(); /
众所周知MyISAM引擎不支持事务,但是我只是知道不支持事务,并未测试具体的表现是什么,测试代码如下:try {     //开启事务     Db::startTrans();     //(1).id为1的数据name字段修改为gao     $isUpdate1 = Db::table('m
在解压tar.bz2类型文件的报错:tar (child): bzip2: Cannot exec: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned statu
elasticsearch的操作都是基于http协议的,已经有现成的php类库,composer安装即可。{     "require": {         "elasticsearch/elasticsearch": "^6.7"     } }(
增量备份可以自己编写脚本定期将每个binlog日志进行增量备份来实现,但是脚本要自己写,官方的Mysql Enterprise BackUp还是收费的,这里推荐一个XtraBackUp备份工具,免费开源。
第一次听说端口复用是在mixphp最新版本中发现的,mixphp启动监听9501端口,现在作者说可以多开几个进程来执行mixphp,我心里想了下再启动不是会端口冲突嘛,但是却没有问题,于是下载mixphp的源码解读,原来是启动http服务器使用new Co\Http\Server('0.0.0.0', 80, false, true); swoole这个http构造方法第4个参数是是否开启端口复用,这样就能多个进程来监听相同端口。底层负载调度由linux自动处理。切记需要linu
用cmd和powershell执行脚本中文输出乱码,由于我是写php脚本的,非常喜欢国际化的uft8编码。注册表修改有些可以有些不可以,直接在控制面板修改。方法1:控制面板\时钟和区域\区域\管理\更改系统区域设置\勾选beta版:使用unicode-utf8全球语言支持,保存重启即可(仅支持win10)方法2:永久修改涉及注册表,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor,新建“字符串值”,名称“autorun”,数值“chc
archive储存引擎的应用场景就是它的名字的缩影,主要用于归档。archive储存引擎仅支持select和insert,最出众的是插入快,查询快,占用空间小。例如我们有大量的历史数据极少访问又不能删除,需要保存,那么它是非常不错的选择。archive最出名的就是压缩,它的引擎使用zlib无损数据压缩算法,压缩率非常好,这里测试下效果。(1).首先创建一个myisam的表member,字段id和name,我们插入4990168条记录(自己循环下)INSERT INTO mem
(1).\g等价于;号,例如下面两条sql语句的输出结果是一样的:select * from member limit 3 \g; select * from member limit 3;输出结果:+----+-------+ | id | name  | +----+-------+ |  1 |
Top