【问题标题】:php echo to elixir iex stdinphp 回显到 elixir iex 标准输入
【发布时间】:2017-05-16 03:35:54
【问题描述】:

好的,我知道我在这里做了一些奇怪的事情,但我必须这样做。

所以我的 elixir 程序需要运行一个 PHP 脚本并从该脚本中获取信息,但它永远不会进来。我可以手动运行 php 脚本,它工作正常。在脚本的底部它说:

echo $avar->getPUId();

所以我猜它打印出来是为了回应。当我从命令行运行它时,我得到了我需要的数据:

C:\PHP>php.exe "-f" "C:\pap.php" "613b8859"
37a69912

但是当我从 iex 运行它时,我什么也得不到:

iex(1)> System.cmd("C:\\PHP\\php.exe", ["-f", "C:\\pap.php", "613b8859"])
Terminate batch job (Y/N)? y

现在,如果我弄乱了文件名或某些 php 将给我一个错误的响应,例如:

iex(1)> System.cmd("C:\\PHP\\php.exe", ["-f", "C:\\pap321.php", "613b8859"])
{"Could not open input file: c:/pap123.php\n", 1}
...

所以我知道我可以与 PHP 对话,并且它可以通过错误与我对话,但 echo 并没有被我的 elixir 应用程序捕获,它显然调用了它。有没有其他方法可以从 PHP 脚本中获取数据?

【问题讨论】:

    标签: php echo elixir stdin


    【解决方案1】:

    我用过

    https://github.com/alco/porcelain

    result = Porcelain.shell("C:\\PHP\\php.exe -f C:\\pap.php 613b8859")
    IO.inspect result.out
    

    效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-06
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2015-06-14
      • 2020-07-06
      相关资源
      最近更新 更多