17

PHP字符串(含中文)转二进制串代码

二进制转换,PHP字符串(含中文)转二进制串代码

代码解释: Continue reading

13

MYSQL查询A表中不存在于B表中的所有符合条件的数据

在开发过程中,总有一些需求是需要查看在A表中ID不存在于B表中的ID的情况:

下面有三种方法可以实现这一需求:

第一种:使用Not in 方法通过子查询的结果集来做过滤:

这种情况最常见也是最容易理解的逻辑SQL代码,但是会有很多问题出现。 Continue reading

11

正则表达式中的点星问号 .*? 或点星加号 .*+ 是什么意思

正则表达式中的点星问号 .*? 或点星加号 .*+ 是什么意思

后边多一个?表示懒惰模式。
必须跟在*或者+后边用
如:<img src="test.jpg" width="60px" height="80px"/>
如果用正则匹配src中内容非懒惰模式匹配
src=".*"
匹配结果是:src="test.jpg" width="60px" height="80px"
意思是从=”往后匹配,直到最后一个”匹配结束

懒惰模式正则:
src=".*?"
结果:src="test.jpg"
因为匹配到第一个”就结束了一次匹配。不会继续向后匹配。因为他懒惰嘛。

.表示除\n之外的任意字符
*表示匹配0-无穷
+表示匹配1-无穷

09

使用QueryList采集时报错提示cURL error 56: Recv failure: Connection was reset (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

使用QueryList采集时报错提示cURL error 56: Recv failure: Connection was reset (see http://curl.haxx.se/libcurl/c/libcurl-errors.html),QueryList报错,QL报错

被采集的网站HTTP协议是可以http访问也可以https访问,但是我采集地址是以http开头的,后来改为https,就正常了。

02

如何开启MySQL数据库的InnoDB模式

MySQL主流引擎是MyISAM模式,这种模式方便使用和维护,Innodb为后来加入的另外一种模式,这种模式支持的功能更强大,是未来发展趋势。
又有个小项目,本地开发(也是框架需要)使用的InnoDB引擎,但当项目开发得差不多了,需要实测上到客户主机后,发现没有InnoDB引擎,说实话,还是头一回碰到没有InnoDB引擎的情况,客户使用的是护卫神服务器管理系统,安装环境可能是套件,没有细了解,那么如何开启MySQL数据库的InnoDB模式呢?下面是我在网上找的。 Continue reading

28

curl采集设置CURLOPT_FOLLOWLOCATION不起作用的解决办法

curl采集设置CURLOPT_FOLLOWLOCATION不起作用的解决办法

curl抓取页面时,如果页面会发生301,302跳转,则需要对curl进行参数设置。

CURLOPT_FOLLOWLOCATION即表示自动进行跳转抓取,CURLOPT_MAXREDIRS表示最多允许跳转多少次。

不过在使用时需要注意:CURLOPT_FOLLOWLOCATION需要在安全模式关闭未设置open_basedir的情况下才能使用。open_basedir是php.ini中的一项设置,功能是将用户可操作的文件限制在某目录下。

如果开户了安全模式,或者设置了open_basedir,则无法使用自动跳转抓取,此时可以采用连续抓取的办法来抓取最终页面。为加快速度和减少不必要的开销,可以在中间非目标页面的抓取过程中使用: Continue reading

28

PHP采集HTML后中文乱码,转换编码为UTF-8的方法

HTML字符集是CP936转UTF-8,GB2312转UTF-8,GBK转UTF-8,PHP采集HTML后中文乱码,转换编码为UTF-8的方法

这个任务最初是使用QueryList插件来采集分析页面的,但是后来发现采集入库的数据中有乱码,查看分析了一下,全部是源页面字符集为非utf-8的页面,那么就利用QueryList自有的方法来转码。

QueryList官方文档 中介绍,使用encoding('UTF-8','GB2312')方法可以解决,但是实际情况是页面字符集多种多样,刚才测试了三个网站三种编码,CP936,EUC-CN,GBK,真是玩死朕了。那么官方还说如果还是不能解决乱码问题就把removeHead()函数也挂上,没挂之前我感觉它应该是不好使,那也要试一下才能真正的确定啊,试了一下,结果确实还是乱码。

QueryList有时有点诡异,采集时有时会缺内容,不知所以然。 Continue reading

23

解决 cURL error 28: Operation timed out after 5000 milliseconds with 0 bytes rece

AJAX交互时报错:cURL error 28: Operation timed out after 5000 milliseconds with 0 bytes rece

首先是排除是不是服务器无响应,如果是服务器无响应造成的此报错,那就不用往下看了,去查服务器中代码吧。

一般我们前端写AJAX的代码是: Continue reading