이 기사의 예에서는 교차 도메인 데이터 캡처를 달성하기 위한 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 데이터 수신입니다.
json = eval("(" + $data + ")"); //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
사실 아직 프론트 데스크입니다. 크로스 도메인 크롤링은 PHP 확장 simple_html_dom을 사용하여 수행됩니다. (확실하지 않은 경우 온라인으로 검색할 수 있으며 PHP5를 기반으로 개발되었습니다.)
원격 페이지 크롤링 로컬로 .
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; //返回数据了。
위 코드는 핵심 코드일 뿐이며, simple_html_dom에는 많은 확장 기능이 있습니다. 스스로 알아보세요.
반환된 데이터는 문자열이며 정규식을 사용하여 필요한 데이터를 필터링합니다. 다음은 렌더링입니다.
이 글이 도움이 되기를 바랍니다. ThinkPHP 프레임워크를 기반으로 한 모든 사람의 PHP 프로그래밍은 도움이 됩니다.
jquery+thinkphp가 도메인 간 데이터 캡처를 구현하는 방법에 대한 더 많은 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!