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

墨辰丷
Libérer: 2023-03-28 19:30:02
original
1226 Les gens l'ont consulté

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";
});
Copier après la connexion


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 代码。
Copier après la connexion


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; //返回数据了。
Copier après la connexion


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!