phprunner.java

来自「CakePHP的Eclipse插件」· Java 代码 · 共 56 行

JAVA
56
字号
package org.xicabin.radcake.core.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class PHPRunner {
	private String php;

	public PHPRunner(String php) throws FileNotFoundException {
		this.php = php;
		if (!validate()) {
			throw new FileNotFoundException("PHP executable not found.");
		}
	}

	public boolean validate() {
		File phpFile = new File(this.php);
		return phpFile.exists() && phpFile.isFile();
	}

	public String getPHP() {
		return this.php;
	}

	public String exec(String script) throws IOException {
		Process phpProc = Runtime.getRuntime().exec(this.php);
		OutputStreamWriter writer = new OutputStreamWriter(phpProc
				.getOutputStream());
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				phpProc.getInputStream()));
		BufferedReader errReader = new BufferedReader(new InputStreamReader(
				phpProc.getErrorStream()));
		writer.write(script);
		writer.flush();
		writer.close();
		String line = null;
		String output = "";
		while ((line = reader.readLine()) != null) {
			output += line;
		}
		reader.close();
		// TODO more helpful error message
		String error = "";
		while ((line = errReader.readLine()) != null) {
			error += line;
		}
		errReader.close();
		System.err.print(error);
		return output;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?