この記事の例では、jquery+thinkphp を使用してドメイン間でデータをキャプチャする方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:
今日はリモートでデータをキャプチャする関数を作成します。jquery は Ajax を使用してリモートでキャプチャできますが、ドメインを越えることはできないことに注意してください。ネットでたくさん見つけました。しかし、包括的なものを作成した方が良いと考えているので、単純な問題を複雑にしてしまっているように感じますが、少なくとも今のところは解決されました:
ドメイン間のデータをローカルデータベースに取得して更新する効果非同期で実装しました
私が実装した方法: jquery $.post がサーバーのバックグラウンドにデータを送信し、バックグラウンドの PHP コードがリモートフェッチを実行してデータベースに保存し、ajax がデータをフロントデスクに返します。フロントデスクはJSを使用してデータを受け取り、それを表示します。
//远程抓取获取数据 $("#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"; });
上記のjqueryコードは4階で比較的明確です
json = eval("(" + $data + ")"); //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
私を悩ませているのはjsonデータの受信です
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; //返回数据了。
実際には、これはまだフロントデスクであり、クロスドメインクローリングはPHP 拡張機能 simple_html_dom (よくわからない場合は、オンラインで検索できます。PHP5 に基づいて開発されています)
リモート ページをローカルにキャプチャします。
rrreee上記のコードは単なるコアコードであり、simple_html_domには多くの拡張機能があります。自分で調べてください。
返されるデータは文字列であり、正規表現を使用して必要なデータをフィルタリングします。以下はレンダリングです 🎜 この記事が、ThinkPHP フレームワークに基づいた PHP プログラミングに役立つことを願っています。 🎜🎜クロスドメイン データ キャプチャを実現するための jquery+thinkphp メソッドの詳細と関連記事については、PHP 中国語 Web サイトに注目してください。 🎜