إنه نفس Android ، قراءة بيانات JSON
ملف PHP:
<؟ phpclass test {// log path const log_path = "e: /phpserver/apache/logs//error.log" ؛ // عدد الصفوف المعروضة صفحات const = 50 ؛ الوظيفة الثابتة العامة الرئيسية () {header ("نوع المحتوى: text/html ؛ charset = utf-8") ؛ if (! فارغ ($ _ get ['action']))) {if (! method_exists ('test' ، $ _ get ['action'])) {echo "404" ؛ } آخر {self :: $ _ get ['action'] () ؛ } مخرج؛ }} public static function showapachelogs () {$ test = new test () ؛ $ result = $ test-> readlogs (self :: log_path ، self :: pages) ؛ $ json = array () ؛ لـ ($ i = 0 ؛ $ i <count ($ result) ؛ $ i ++) {$ line = $ result [$ i] ؛ // ملاحظة هنا ، إذا تمت معالجة المعالجة ، فسوف تفشل تحليل JSON $ line = str_replace ("/r/n" ، "" ، $ line) ؛ $ result [$ i] = array ("num" => $ i+1 ، "msg" => urlencode ($ line)) ؛ } $ str = stripslashes (urldecode (json_encode ($ result)))) ؛ صدى $ str ؛ } / *** اقرأ log* / private function readlogs ($ filepath ، $ num = 20) {$ fp = fopen ($ filepath ، "r") ؛ $ pos = -2 ؛ $ eof = "" ؛ $ head = false ؛ // عندما يكون العدد الإجمالي للصفوف أقل من NUM ، حدد ما إذا كان يصل إلى خطوط الصف الأول $ = Array () ؛ بينما ($ num> 0) {بينما ($ eof! = "/n") {if (fseek ($ fp ، $ pos ، seek_end) == 0) {// fseek إرجاع 0 ، ويفشل في إرجاع -1 $ eof = fgetc ($ fp) ؛ $ pos-- ؛ } آخر {// عندما يصل إلى السطر الأول والخط الأول ، فإن إعداد $ pos فشل fseek ($ fp ، 0 ، seek_set) ؛ $ head = true ؛ // عندما يصل إلى رأس الملف ، يفتح المفتاح كسر ؛ }} array_unshift ($ lines ، fgets ($ fp)) ؛ if ($ head) {break ؛ } // لا يمكن وضع هذه الجملة إلا بعد جملة واحدة ، لأنه بعد الوصول إلى رأس الملف ، اقرأ السطر الأول ثم القفز من الحلقة بأكملها $ eof = "" ؛ $ num-- ؛ } fclose ($ fp) ؛ إرجاع array_reverse ($ lines) ؛ }} test :: main () ؛ملفات جافا:
استيراد java.io.inputStream ؛ import java.net.httpurlconnection ؛ import java.net.url ؛ import org.json.jsonarray ؛ import org.json.jsonobject ؛ readlogs public {public static void main (string) throws consection {url url = url ("http: //localhost/test.php؟ Action = Showapachelogs") ؛ httpurlConnection conn = (httpurlConnection) url.openconnection () ؛ Conn.SetConnectTimeout (10000) ؛ Conn.SetRequestMethod ("get") ؛ conn.setDoInput (صواب) ؛ conn.setDooutput (صواب) ؛ // إخراج إرجاع النتيجة إدخال inputStream = conn.getInputStream () ؛ int reslen = 0 ؛ بايت [] الدقة = بايت جديد [1024] ؛ StringBuilder sb = new StringBuilder () ؛ بينما ((reslen = input.read (res))! =-1) {sb.append (سلسلة جديدة (res ، 0 ، reslen)) ؛ } string jsonstr = sb.toString () ؛ // يتم تحويل String إلى Json Jsonarray Jsonarray = New Jsonarray (JSonstr) ؛ لـ (int i = 0 ؛ i <jsonarray.length () ؛ i ++) {jsonobject jsonobject = new jsonobject (jsonarray.getString (i)) ؛ String msg = (string) jsonobject.get ("msg") ؛ int num = (int) jsonobject.get ("num") ؛ System.out.println (num+":"+msg) ؛ }}}الطريقة المذكورة أعلاه لتنفيذ بيانات واجهة Java Reading PHP هي كل المحتوى الذي شاركته معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.