Home > Article > Backend Development > Detailed explanation of jquery+thinkphp to achieve cross-domain data capture
This article mainly introduces the method of jquery thinkphp to achieve cross-domain data capture, and analyzes the related operation skills of thinkPHP combined with jQuery's ajax to achieve cross-domain data capture in the form of examples. Friends who need it can refer to it
Today we will make a remote data capture function. Remember that jquery can be used to remotely capture data using Ajax, but it cannot be used across domains. I found a lot online. But I think it is better to do a comprehensive one, so now I feel that it has complicated a simple problem, but at least it has been solved for now:
The effect of cross-domain crawling data to the local database and then asynchronous update
The way I implement it: jquery's $.post sends data to the server background, and the PHP code in the background performs remote fetching, saves it to the database, ajax returns the data to the front desk, and the front desk uses JS to accept the data and display it.
//远程抓取获取数据 $("#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"; });
The above jquery code is relatively clear on the fourth floor. What bothers me is the reception of json data
json = eval("(" + $data + ")"); //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
In fact, this is still the front desk. Cross-domain crawling is done using the PHP extension simple_html_dom (if you are not sure, you can search online , developed based on PHP5)
Capture remote pages to local.
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; //返回数据了。
The above code is just the core code, simple_html_dom has many extended functions. Find out for yourself.
The returned data is a string, and then use regular expressions to filter the required data. The following is the rendering
Summary: The above is this The entire content of this article is hoped to be helpful to everyone's study.
Related recommendations:
PHP method to implement user registration and login function
phpImplement judgment Client type
phpGenerate and read excel files_phpExample
The above is the detailed content of Detailed explanation of jquery+thinkphp to achieve cross-domain data capture. For more information, please follow other related articles on the PHP Chinese website!