【问题标题】:QuercusCompiledScript.eval output not workingQuercusCompiledScript.eval 输出不工作
【发布时间】:2016-03-02 05:45:15
【问题描述】:

我无法弄清楚 QuercusCompiledScript.eval 的问题所在。运行代码:

QuercusScriptEngine quercusScriptEngine = new QuercusScriptEngine();
quercusScriptEngine.eval("<?php echo 'hello uncompiled!\n'; ?>");
CompiledScript script = quercusScriptEngine.compile("<?php echo 'hello compiled!\n'; ?>");
script.eval();
System.out.println("that's all");

产生:

hello uncompiled!
that's all

调试这个东西我不知道出了什么问题,因为它确实执行了语句,缓冲区是好的,但输出本身没有执行。

怎么了?

【问题讨论】:

    标签: quercus


    【解决方案1】:

    我找到了问题的原因。 QuercusScriptEngine.eval() 明确地执行 writer.flush() 最后引用 http://bugs.caucho.com/view.php?id=1914。但QuercusCompiledScript.eval() 没有,至少在 quercus-4.0.39 中(以及在 quercus-4.0.45 中)。解决方法是刷新显式提供Writer

    CompiledScript script = quercusScriptEngine.compile("<?php echo 'hello compiled!\n'; ?>");
    ScriptContext ctx = quercusScriptEngine.getContext();
    Writer writer = new OutputStreamWriter(System.out);
    ctx.setWriter(writer);
    script.eval(ctx);
    writer.flush();
    

    【讨论】:

      猜你喜欢
      • 2018-10-20
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多