Maison  >  Article  >  développement back-end  >  Explication détaillée de jquery+thinkphp pour réaliser une capture de données inter-domaines

Explication détaillée de jquery+thinkphp pour réaliser une capture de données inter-domaines

墨辰丷
墨辰丷original
2018-06-01 09:06:301254parcourir

Cet article présente principalement la méthode jquery+thinkphp pour réaliser une capture de données inter-domaines, et analyse les compétences opérationnelles associées de thinkPHP combinées avec l'ajax de jQuery pour réaliser une capture de données inter-domaines sous forme d'exemples. référez-vous à lui

Aujourd'hui, nous allons créer une fonction de capture de données à distance. N'oubliez pas que jquery peut être utilisé pour capturer des données à distance à l'aide d'Ajax, mais il ne peut pas traverser de domaines. J'en ai trouvé beaucoup en ligne. Mais je pense qu'il vaut mieux en faire un complet, alors maintenant je pense que c'est un peu compliqué de résoudre un problème simple, mais au moins il est résolu pour l'instant :

L'effet des données d'exploration inter-domaines à la base de données locale puis mise à jour asynchrone

La façon dont je l'implémente : le $.post de jquery envoie les données en arrière-plan du serveur, et le code PHP en arrière-plan effectue une récupération à distance, l'enregistre dans la base de données, ajax renvoie les données à la réception, et la réception utilise JS pour accepter les données et les afficher.


//远程抓取获取数据
 $("#update_ac").click(function() {
      $username = $("#username").text();
      $("#AC,#rank,#Submit,#solved,#solved2,#solved3").ajaxStart(function(){
        $(this).html("<span class=&#39;loading2&#39;>   </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";
});


Le code jquery ci-dessus est relativement clair au quatrième étage. Ce qui me dérange, c'est la réception des données json


json = eval("(" + $data + ")");
//eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。


En fait, il s'agit toujours de la réception. L'exploration inter-domaines se fait à l'aide de l'extension PHP simple_html_dom (si vous l'êtes. pas sûr, vous pouvez aller en ligne Go search, développé sur PHP5)

Capturez les pages distantes en local.


import("@.ORG.simple_html_dom");
//thinkphp内导入扩展,你要把网上下载的代码改名为simple_html_dom.class.php放到APPNAME\Lib\ORG的目录下面
$html = file_get_html(&#39;http://openoj.awaysoft.com/JudgeOnline/userinfo.php?user=&#39;.$username); //远程抓取了
$ret = $html->find(&#39;center&#39;,0)->plaintext; //返回数据了。


Le code ci-dessus n'est que le code de base, simple_html_dom a de nombreuses fonctions étendues. Découvrez par vous-même.

Les données renvoyées sont une chaîne, puis utilisez des expressions régulières pour filtrer les données requises. Voici le rendu

Résumé : Ce qui précède est le suivant. Nous espérons que l’ensemble du contenu de cet article sera utile à l’étude de chacun.

Recommandations associées :

Comment implémenter la fonction d'enregistrement et de connexion des utilisateurs en PHP

php mettre en œuvre le jugement Type de client

phpGénérer et lire un fichier Excel_phpInstance



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn