相思资源网 Design By www.200059.com
本文实例讲述了jquery+thinkphp实现跨域抓取数据的方法。分享给大家供大家参考,具体如下:
今天做一个远程抓取数据的功能,记得jquery可以用Ajax远程抓取,但不能跨域。再网上找了很多。但我觉得还是来个综合的,所以我现在觉得有点把简单问题复杂化了,但至少目前解决了:
跨域抓取数据到本地数据库再异步更新的效果
我实现的方式:jquery的$.post发送数据到服务器后台,在由后台的PHP代码执行远程抓取,存到数据库ajax返回数据到前台,前台用JS接受数据并显示。
//远程抓取获取数据 $("#update_ac").click(function() { $username = $("#username").text(); $("#AC,#rank,#Submit,#solved,#solved2,#solved3").ajaxStart(function(){ $(this).html("<span class='loading2'> </span>"); }); $.post("update_ac/username/"+$username,{},function($data){ json = eval("(" + $data + ")"); $("#Submit").html(json.data.Submit); $("#AC").html(json.data.AC); $("#solved,#solved2,#solved3").html(json.data.solved); $("#rank").html(json.data.rank); } ),"json"; });
上面的jquery代码还算四楼比较清楚的,纠结我的就是那个json数据的接收
json = eval("(" + $data + ")"); //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
其实这个都还是前台,跨域抓取是用php的扩展simple_html_dom完成的(不清楚的可以到网上去搜一搜,基于PHP5开发的)
把远程的页面抓取到本地。
import("@.ORG.simple_html_dom"); //thinkphp内导入扩展,你要把网上下载的代码改名为simple_html_dom.class.php放到APPNAME\Lib\ORG的目录下面 $html = file_get_html('http://openoj.awaysoft.com/JudgeOnline/userinfo.php"text-align: center">更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无jquery+thinkphp实现跨域抓取数据的方法的评论...