当前位置:首页 > CN2资讯 > 正文内容

[PHP] java读取PHP接口数据php 读取

2天前CN2资讯

和安卓是一个道理,读取json数据

PHP文件:

<?php class Test{ //日志路径 const LOG_PATH="E:\phpServer\Apache\logs\\error.log"; //显示的行数 const PAGES=50; public static function main(){ header("content-type:text/html;charset=utf-8"); if(!empty($_GET['action'])){ if(!method_exists('Test',$_GET['action'])){ echo "404"; }else{ self::$_GET['action'](); } exit; } } public static function showApacheLogs(){ $test=new Test(); $result=$test->readLogs(self::LOG_PATH,self::PAGES); $json=array(); for($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))); echo $str; } /** * 读取日志 */ private function readLogs($filePath,$num=20){ $fp = fopen($filePath,"r"); $pos = -2; $eof = ""; $head = false; //当总行数小于Num时,判断是否到第一行了 $lines = array(); while($num>0){ while($eof != "\n"){ if(fseek($fp, $pos, SEEK_END)==0){ //fseek成功返回0,失败返回-1 $eof = fgetc($fp); $pos--; }else{ //当到达第一行,行首时,设置$pos失败 fseek($fp,0,SEEK_SET); $head = true; //到达文件头部,开关打开 break; } } array_unshift($lines,fgets($fp)); if($head){ break; } //这一句,只能放上一句后,因为到文件头后,把第一行读取出来再跳出整个循环 $eof = ""; $num--; } fclose($fp); return array_reverse($lines); } } Test::main();

java文件:

import java.io.InputStream; import .HttpURLConnection; import .URL; import org.json.JSONArray; import org.json.JSONObject; public class ReadLogs { public static void main(String[] args) throws Exception { URL url = new URL("http://localhost/test.php?action=showApacheLogs"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(10000); conn.setRequestMethod("GET"); conn.setDoInput(true); conn.setDoOutput(true); // 输出返回结果 InputStream input = conn.getInputStream(); int resLen =0; byte[] res = new byte[1024]; StringBuilder sb=new StringBuilder(); while((resLen=input.read(res))!=-1){ sb.append(new String(res, 0, resLen)); } String jsonStr=sb.toString(); //String转换成JSON JSONArray jsonArray=new JSONArray(jsonStr); for(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); } } }
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/25990.html

    分享给朋友:

    “[PHP] java读取PHP接口数据php 读取” 的相关文章

    Hostodo网站打不开?快速解决访问问题的实用指南

    遇到Hostodo网站打不开的情况,很多人会感到困惑。其实,这种问题通常由几个常见原因引起。DNS解析问题是其中之一。当你的设备无法正确解析Hostodo的域名时,网站就无法加载。这种情况可能是由于本地DNS服务器的问题,或者是网络运营商DNS解析不稳定导致的。 网络连接问题也可能导致Hostodo...

    CN2 GIA VPS推荐:最佳虚拟专用服务器选择

    CN2 GIA VPS概述 在当今数字时代,寻找一个稳定且高效的虚拟专用服务器(VPS)成为很多企业和个人用户的需求。而CN2 GIA VPS凭借其卓越的性能和稳定的连接,受到了越来越多的关注。简单来说,CN2 GIA是一种中国电信提供的高质量网络传输线路,可以确保数据的快速和安全传输。 我曾尝试过...

    KVM是什么?深入了解KVM的定义、工作原理及应用场景

    KVM的定义与概念 谈到KVM时,首先想到的就是“键盘、显示器和鼠标”的组合,它让我们可以用一组设备控制多台计算机。这种技术非常适合在数据中心或需要远程管理的环境中使用。我对这个系统产生了兴趣,因为它显著提高了管理效率,节省了空间,还所有的操作都变得更简便。想象一下,如果有多台服务器,你需要同时监控...

    探索美国冷门VPS:高性价比与个性化服务的优选

    在谈论VPS(虚拟专用服务器)时,人们往往会联想到那些知名的品牌和服务,而美国冷门VPS市场却是一个值得关注的领域。这些冷门VPS提供商虽然在整体市场中的知名度较低,但却为特定的用户群体和需求提供了颇具价值的服务。我在研究这个市场时,发现不少提供商在某些方面有着相当的优势,让我对这个冷门领域充满了好...

    选择香港主机的最佳指南:提升您的网站性能与用户体验

    香港主机指的是那些在香港地区部署的服务器,主要用于提供网站托管、应用托管或数据库管理等服务。得益于香港卓越的网络基础设施,越来越多的企业和个人选择将他们的运营托付给香港主机。这不仅提升了业务的可达性,也提供了更优质的用户体验。 如果我回想起我最初接触香港主机时,感到非常惊讶于它的潜力。香港地理位置独...

    如何使用RackNerd优惠码进行主机购买:节省开支的最佳策略

    RackNerd是一家成立于2017年的国外主机公司,作为一家新生力量,它迅速在市场上占据了一席之地。它的使命是为全球用户提供可靠且高性能的主机服务,帮助他们搭建自己的网络基础设施。我最喜欢RackNerd的地方是他们始终如一地致力于客户体验,这让我在使用他们的服务时非常安心。 RackNerd的服...