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

19

QQ咨询、QQ在线客服、手机浏览器打开手机QQ代码

QQ咨询,QQ在线客服,手机浏览器打开手机QQ代码

电脑端-打开电脑的qq的源码

<a href=”tencent://message/?uin=1234567&Site=&Menu=yes”>立即咨询</a>

手机端-打开手机qq的代码

<a href=”mqqwpa://im/chat?chat_type=wpa&uin=1234567&version=1&src_type=web&web_src=oicqzone.com” >在线客服</a>

把链接里面的QQ号换成自己的。

16

一个小改造实现织梦列表页、内容页获取当前页面链接

做织梦系统的MIP开发改造时,需要实现获取当前列表页和内容页的链接,在网上找了一会,看有没有成品代码可抄,找来找去,都是不如意的,还有一些也实现不了。

花一会功夫,还是自己写一个吧,找代码比写代码用时还长呢。

把代码加到 /include/helpers/extend.helper.php 文件最后。

经实际应用的项目是全站静态页面的环境,其它环境(如果动态页面,或者是伪静态页面)未测试,使用时请注意观察。如果有问题需要帮助的话,可以联系我。 Continue reading

14

ThinkPHP5.1门面(Facade.php)

门面(Facade
门面为容器中的类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个facade类。
例:
1.定义一个Test类 –> 有一个hello动态方法

2.接下来,我们给这个类定义一个静态代理类app\facade\Test(这个类名不一定要和Test类一致,但通常为了便于管理,建议保持名称统一)。 Continue reading

10

JavaScript中的call、apply、bind方法的异同

js中的call(), apply()和bind()是Function.prototype下的方法,都是用于改变函数运行时上下文,最终的返回值是你调用的方法的返回值,若该方法没有返回值,则返回undefined。这几个方法很好地体现了js函数式语言特性,在js中几乎每一次编写函数式语言风格的代码,都离不开call和apply,能够熟练运用它们,是真正成为一名jser程序员的重要一步。 Continue reading