如何通过php的curl模拟ajax请求,获取其返回值

如何通过php的curl模拟ajax请求,获取其返回值,第1张

这个需要配合js,打开一个html页面,首先js用ajax请求页面,返回第一个页面信息确定处理完毕(ajax有强制同步功能),ajax再访问第二个页面。(或者根据服务器状况,你可以同时提交几个URL,跑几个相同的页面)

参数可以由js产生并传递url,php后台页面根据URL抓页面。然后ajax通过php,在数据库或者是哪里设一个标量,标明检测到哪里。由于前台的html页面执行多少时候都没问题,这样php的内存限制和执行时间限制就解决了。

因为不会浪费大量的资源用一个页面来跑一个瞬间500次的for循环了。(你的500次for循环死了原因可能是获取的数据太多,大过了php限制的内存)

不过印象中curl好像也有强制同步的选项,就是等待一个抓取后再执行下一步。但是这个500次都是用一个页面线程处理,也就是说肯定会远远大于30秒的默认执行时间。

1 背景知识

2 libcurl 基础知识

3 libcurl两种模式

4 libcurl实例分析

1 背景知识:

11 基本网络通信cs模式,select 框架,网上例子很多下面只介绍epoll的难点其他内容请自行搜索

12 epoll 用法

121 基础知识:

在自己端准备write之前,通过epoll ctrl设置成epoll out

epoll in 是被动监听接收,epoll out是主动设置

122 epoll 模型:网上例子很多

这个是最简单异步,先发送--等待--接收,这种用法很少用了

>

是的,file_get_contents($url)是速度比较低的,很容易抓取失败。

应该用socket或curl来抓取。其中curl性能也比较低。最好用socket,不过前提是要抓取的页面所在服务器要支持socket,大多数是支持的。file_get_contents速度慢同时又不支持socket的服务器是极少见的。我可以写一个通用的socket抓取函数给你,代码比较长,你留下个email。

以上就是关于如何通过php的curl模拟ajax请求,获取其返回值全部的内容,包括:如何通过php的curl模拟ajax请求,获取其返回值、常用libcurl异步使用方法、file_get_contents($url)超时无法抓取网页,应对反应慢的服务器无法抓取到数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9310419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存