php我左边有灵药
php echo to elixir iex stdin
好的,我知道我在这里做了一些奇怪的事情,但我必须这样做。
所以我的 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 交谈,它可以向我反馈错误,但显然调用它的 elixir 应用程序没有捕捉到回声。有没有其他方法可以获取来自 PHP 脚本的数据?
我用了
https://github.com/alco/porcelain
result = Porcelain.shell("C:\PHP\php.exe -f C:\pap.php 613b8859")
IO.inspect result.out
效果很好。
好的,我知道我在这里做了一些奇怪的事情,但我必须这样做。
所以我的 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 交谈,它可以向我反馈错误,但显然调用它的 elixir 应用程序没有捕捉到回声。有没有其他方法可以获取来自 PHP 脚本的数据?
我用了
https://github.com/alco/porcelain
result = Porcelain.shell("C:\PHP\php.exe -f C:\pap.php 613b8859")
IO.inspect result.out
效果很好。