[PHP] java讀取PHP接口數(shù)據(jù)
Aug 04, 2016 am 08:53 AM和安卓是一個道理,讀取json數(shù)據(jù)
PHP文件:
<span style="color: #000000;">php </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Test{ </span><span style="color: #008000;">//</span><span style="color: #008000;">日志路徑</span> <span style="color: #0000ff;">const</span> LOG_PATH="E:\phpServer\Apache\logs\\error.log"<span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">顯示的行數(shù)</span> <span style="color: #0000ff;">const</span> PAGES=50<span style="color: #000000;">; </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> main(){ </span><span style="color: #008080;">header</span>("content-type:text/html;charset=utf-8"<span style="color: #000000;">); </span><span style="color: #0000ff;">if</span>(!<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$_GET</span>['action'<span style="color: #000000;">])){ </span><span style="color: #0000ff;">if</span>(!<span style="color: #008080;">method_exists</span>('Test',<span style="color: #800080;">$_GET</span>['action'<span style="color: #000000;">])){ </span><span style="color: #0000ff;">echo</span> "404"<span style="color: #000000;">; }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ self</span>::<span style="color: #800080;">$_GET</span>['action'<span style="color: #000000;">](); } </span><span style="color: #0000ff;">exit</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> showApacheLogs(){ </span><span style="color: #800080;">$test</span>=<span style="color: #0000ff;">new</span><span style="color: #000000;"> Test(); </span><span style="color: #800080;">$result</span>=<span style="color: #800080;">$test</span>->readLogs(self::LOG_PATH,self::<span style="color: #000000;">PAGES); </span><span style="color: #800080;">$json</span>=<span style="color: #0000ff;">array</span><span style="color: #000000;">(); </span><span style="color: #0000ff;">for</span>(<span style="color: #800080;">$i</span>=0;<span style="color: #800080;">$i</span>count(<span style="color: #800080;">$result</span>);<span style="color: #800080;">$i</span>++<span style="color: #000000;">){ </span><span style="color: #800080;">$line</span>=<span style="color: #800080;">$result</span>[<span style="color: #800080;">$i</span><span style="color: #000000;">]; </span><span style="color: #008000;">//</span><span style="color: #008000;">注意這里,如果處理會json解析失敗</span> <span style="color: #800080;">$line</span>=<span style="color: #008080;">str_replace</span>("\r\n", "", <span style="color: #800080;">$line</span><span style="color: #000000;">); </span><span style="color: #800080;">$result</span>[<span style="color: #800080;">$i</span>]=<span style="color: #0000ff;">array</span>("num"=><span style="color: #800080;">$i</span>+1,"msg"=><span style="color: #008080;">urlencode</span>(<span style="color: #800080;">$line</span><span style="color: #000000;">)); } </span><span style="color: #800080;">$str</span>=<span style="color: #008080;">stripslashes</span>(<span style="color: #008080;">urldecode</span>(json_encode(<span style="color: #800080;">$result</span><span style="color: #000000;">))); </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$str</span><span style="color: #000000;">; } </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 讀取日志 </span><span style="color: #008000;">*/</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span> readLogs(<span style="color: #800080;">$filePath</span>,<span style="color: #800080;">$num</span>=20<span style="color: #000000;">){ </span><span style="color: #800080;">$fp</span> = <span style="color: #008080;">fopen</span>(<span style="color: #800080;">$filePath</span>,"r"<span style="color: #000000;">); </span><span style="color: #800080;">$pos</span> = -2<span style="color: #000000;">; </span><span style="color: #800080;">$eof</span> = ""<span style="color: #000000;">; </span><span style="color: #800080;">$head</span> = <span style="color: #0000ff;">false</span>; <span style="color: #008000;">//</span><span style="color: #008000;">當總行數(shù)小于Num時,判斷是否到第一行了 </span> <span style="color: #800080;">$lines</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">(); </span><span style="color: #0000ff;">while</span>(<span style="color: #800080;">$num</span>>0<span style="color: #000000;">){ </span><span style="color: #0000ff;">while</span>(<span style="color: #800080;">$eof</span> != "\n"<span style="color: #000000;">){ </span><span style="color: #0000ff;">if</span>(<span style="color: #008080;">fseek</span>(<span style="color: #800080;">$fp</span>, <span style="color: #800080;">$pos</span>, SEEK_END)==0){ <span style="color: #008000;">//</span><span style="color: #008000;">fseek成功返回0,失敗返回-1 </span> <span style="color: #800080;">$eof</span> = <span style="color: #008080;">fgetc</span>(<span style="color: #800080;">$fp</span><span style="color: #000000;">); </span><span style="color: #800080;">$pos</span>--<span style="color: #000000;">; }</span><span style="color: #0000ff;">else</span>{ <span style="color: #008000;">//</span><span style="color: #008000;">當?shù)竭_第一行,行首時,設置$pos失敗 </span> <span style="color: #008080;">fseek</span>(<span style="color: #800080;">$fp</span>,0,<span style="color: #000000;">SEEK_SET); </span><span style="color: #800080;">$head</span> = <span style="color: #0000ff;">true</span>; <span style="color: #008000;">//</span><span style="color: #008000;">到達文件頭部,開關打開 </span> <span style="color: #0000ff;">break</span><span style="color: #000000;">; } } </span><span style="color: #008080;">array_unshift</span>(<span style="color: #800080;">$lines</span>,<span style="color: #008080;">fgets</span>(<span style="color: #800080;">$fp</span><span style="color: #000000;">)); </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$head</span>){ <span style="color: #0000ff;">break</span>; } <span style="color: #008000;">//</span><span style="color: #008000;">這一句,只能放上一句后,因為到文件頭后,把第一行讀取出來再跳出整個循環(huán) </span> <span style="color: #800080;">$eof</span> = ""<span style="color: #000000;">; </span><span style="color: #800080;">$num</span>--<span style="color: #000000;">; } </span><span style="color: #008080;">fclose</span>(<span style="color: #800080;">$fp</span><span style="color: #000000;">); </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">array_reverse</span>(<span style="color: #800080;">$lines</span><span style="color: #000000;">); } } Test</span>::main();
java文件:
<span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.InputStream; </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.net.HttpURLConnection; </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.net.URL; </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.json.JSONArray; </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.json.JSONObject; </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> ReadLogs { </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception { URL url </span>= <span style="color: #0000ff;">new</span> URL("http://localhost/test.php?action=showApacheLogs"<span style="color: #000000;">); HttpURLConnection conn </span>=<span style="color: #000000;"> (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(</span>10000<span style="color: #000000;">); conn.setRequestMethod(</span>"GET"<span style="color: #000000;">); conn.setDoInput(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">); conn.setDoOutput(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 輸出返回結果</span> InputStream input =<span style="color: #000000;"> conn.getInputStream(); </span><span style="color: #0000ff;">int</span> resLen =0<span style="color: #000000;">; </span><span style="color: #0000ff;">byte</span>[] res = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span>[1024<span style="color: #000000;">]; StringBuilder sb</span>=<span style="color: #0000ff;">new</span><span style="color: #000000;"> StringBuilder(); </span><span style="color: #0000ff;">while</span>((resLen=input.read(res))!=-1<span style="color: #000000;">){ sb.append(</span><span style="color: #0000ff;">new</span> String(res, 0<span style="color: #000000;">, resLen)); } String jsonStr</span>=<span style="color: #000000;">sb.toString(); </span><span style="color: #008000;">//</span><span style="color: #008000;">String轉換成JSON</span> JSONArray jsonArray=<span style="color: #0000ff;">new</span><span style="color: #000000;"> JSONArray(jsonStr); </span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i=0;i<jsonarray.length style="color: #000000;">){ JSONObject jsonObject=<span style="color: #0000ff;">new</span><span style="color: #000000;"> JSONObject(jsonArray.getString(i)); String msg</span>=(String) jsonObject.get("msg"<span style="color: #000000;">); </span><span style="color: #0000ff;">int</span> num=(<span style="color: #0000ff;">int</span>) jsonObject.get("num"<span style="color: #000000;">); System.out.println(num</span>+":"+<span style="color: #000000;">msg); } } }</span></jsonarray.length>
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas
Bagaimana untuk memperbaiki KB5060533 gagal dipasang di Windows 10?
3 minggu yang lalu
By DDD
Dune: Awakening - Di mana untuk mendapatkan kain terlindung
3 minggu yang lalu
By Jack chen
Log masuk Gmail: Cara mendaftar, mendaftar masuk, atau mendaftar keluar dari Gmail - Minitool
1 bulan yang lalu
By Jack chen
Bagaimana untuk memperbaiki KB5060999 gagal dipasang di Windows 11?
3 minggu yang lalu
By DDD
Panduan Guild di Grail Tercemar: Kejatuhan Avalon
4 minggu yang lalu
By Jack chen

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
