java怎么拿到PHP的数据

互联网 19-10-29

java获取php数据的方法:

推荐:php服务器

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 java.net.HttpURLConnection; import java.net.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);     }   } }

以上就是java怎么拿到PHP的数据的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: PHP
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java操作new HttpPost(URL)和 new URL(shixun_ip) 获取流

相关资讯