Detailed explanation of jquery+thinkphp to achieve cross-domain data capture

墨辰丷
Release: 2023-03-28 19:30:02
Original
1084 people have browsed it

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("   ");
      });
      $.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";
});
Copy after login


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 代码。
Copy after login


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; //返回数据了。
Copy after login


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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact [email protected]
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!