这是核心部分:
/// <summary>
/// 运行PHP脚本
/// </summary>
/// <returns></returns>
private string RunPHP()
{
Process scriptProc = new Process();
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = Constants.APP_STARTUP_PATH + Common.Settings.PHPDirName.Value
+ "/php.exe";
info.Arguments = "-f " + codeTmpPath;
info.RedirectStandardError = true;
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
info.CreateNoWindow = true;
scriptProc.StartInfo = info;
try
{
scriptProc.Start();
}
catch (Exception ex)
{
MessageBox.Show("PHP目录不存在!");
return "";
}
string outStr = scriptProc.StandardOutput.ReadToEnd();
// 有错误,读取错误信息
if (String.IsNullOrEmpty(outStr))
{
outStr = scriptProc.StandardError.ReadToEnd();
}
scriptProc.Close();
return outStr;
}
设置下
info.StandardOutputEncoding
和info.StandardErrorEncoding
修改标准输出流和标准错误流的编码。