How can I call a PHP script from a Perl script and get its output as a variable?
Using the backtick operator:
my $phpOutput = `/usr/bin/php-cli your-script.php`;
Note that you may have to edit the path to point to your php
executable.
If you want to have the output as a stream you can also open
with a pipe (Perl <3):
open PHPOUT, "/usr/bin/php-cli your-script.php|";
while (<PHPOUT>) {
# do something with the current line $_
}
See perldoc -f open.
The reverse of this question, but the same answer.
Use backticks or the qx
operator:
$output = `/path/to/php my_script.php`;
It may be easier to distill this into it's core problem, "How invoke another program from perl", which is answered in the perlop man page's info about "qx" (or look up the perl qx command through some other means). That informs you how to run an external program and get the output, and this assumed that your PHP script is actually functional when called through the command line (can you run it through "php your-php-script.php" ?).
If your script is only functional through an HTTP request, then you need to use something like the LWP::UserAgent or WWW::Mechanize to get the content through it's URL, similarly to how you would need to use HTTP_Request.php in PHP.