威凡网全力打造:网页编程、软件开发编程、平面设计、服务器端开发、操作系统等在线学习平台!学编程,上威凡网!
PHP教程>> PHP基础 PHP技巧 PHP实例 PHP文摘 PHP模板 PHP总结
当前位置:首页 > PHP教程 > PHP实例
上一节 下一节
 jquery+thinkphp实现跨域抓取数据的方法

本文实例讲述了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?user='.$username); //远程抓取了 $ret = $html->find('center',0)->plaintext; //返回数据了。

上面的代码只是核心代码,simple_html_dom扩展的还有很多功能。自己去了解吧。

返回的数据是一个字符串,再用正则表达式去筛选需要的数据就了 下面是效果图

更多关于thinkphp相关内容感兴趣的读者可查看本站专题:《thinkphp入门教程》、《thinkphp模板操作技巧总结》、《thinkphp常用方法总结》、《smarty模板入门基础教程》及《php模板技术总结》。

希望本文所述对大家基于thinkphp框架的php程序设计有所帮助。



申明:本文章由威凡网编辑整理并发布,如文中有侵权行为,请与本站客服联系(QQ:254677821)!
上一节 下一节
相关教程  
其他教程  
PHP基础
PHP技巧
PHP实例
PHP文摘
PHP模板
PHP总结

Copyright©威凡网 版权所有 苏ICP备2023020142号
站长QQ:254677821