Maison  >  Article  >  développement back-end  >  Comment implémenter l'exploration de données inter-domaines à l'aide de jquery thinkphp

Comment implémenter l'exploration de données inter-domaines à l'aide de jquery thinkphp

高洛峰
高洛峰original
2017-01-11 11:09:401369parcourir

L'exemple de cet article décrit comment jquery thinkphp implémente l'exploration de données inter-domaines. Je voudrais le partager avec vous pour votre référence. Les détails sont les suivants :

Aujourd'hui, je vais créer une fonction de capture de données à distance. N'oubliez pas que jquery peut être utilisé pour capturer des données à distance en utilisant Ajax, mais ce n'est pas le cas. domaines croisés. J'en ai trouvé beaucoup en ligne. Mais je pense qu'il vaut mieux en faire un complet, alors maintenant j'ai l'impression que cela a compliqué un problème simple, mais au moins il a été résolu pour l'instant :

L'effet de la capture de données inter-domaines au niveau local base de données, puis la mettre à jour de manière 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 n'êtes pas sûr, vous pouvez effectuer une recherche en ligne, elle est développée sur la base de PHP5)

Exploration des pages distantes. au 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

jquery thinkphp实现跨域抓取数据的方法

J'espère que cet article vous aidera. La programmation PHP de chacun basée sur le framework ThinkPHP est utile.

Pour plus de méthodes jquery thinkphp pour réaliser une exploration de données inter-domaines et des articles connexes, veuillez faire attention au site Web PHP 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