MetaStack
MetaStack

Reputation: 3716

php echo to elixir iex stdin

ok, I know I'm doing something weird here but I gotta do it.

So my elixir program needs to run one PHP script and take the information from that script, but it never comes in. I can manually run the php script and it works fine. At the bottom of the script it says:

echo $avar->getPUId();

So it's printing it out to echo I guess. I get the data I need when I run it from a command line:

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

But when I run it from iex I get nothing:

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

Now, if I mess up on the filename or something php will give me an error in response saying like:

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

so I know I can talk to PHP, and it can talk back to me with errors, but echo isn't caught by my elixir application that calls it apparently. Is there any other way I can grab the data as it comes out of the PHP script?

Upvotes: 0

Views: 161

Answers (1)

MetaStack
MetaStack

Reputation: 3716

I used

https://github.com/alco/porcelain

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

it worked great.

Upvotes: 0

Related Questions