in reply to Running PHP

You can run PHP from the command line:

php -q myscript.php

which means that you could run it from a Perl program:

my $ouput = `php -q myscript.php`;

The '-q' argument is for suppressing the HTTP headers. If you need them for some reason, just don't use -q.

Replies are listed 'Best First'.
Re^2: Running PHP
by bradcathey (Prior) on Apr 16, 2005 at 19:10 UTC

    itub, I see what you have done, but not sure how this differs from the CGI redirect I do to run my PHP script from my Perl. Also, it doesn't solve the problem I have passing data (It would be cool if there was an PHP version of HTML::Template).

    I thought I might we able to print the PHP as a here doc, but that bombed as well. Thanks.


    —Brad
    "The important work of moving the world forward does not wait to be done by perfect men." George Eliot
      I can think of three ways of passing data to PHP:
      1. Call it as a real CGI, using LWP to connect to your web server
      2. Emulate the CGI environment by setting variables such as $ENV{REQUEST_METHOD} and $ENV{QUERY_STRING}. The problem is that PHP is usually compiled in a way that disallows this for security reasons.
      3. Create the PHP script on the fly, including the data there. A simple example would be this:

        # multiply $x by $y using php use IPC::Open2; my $x = 5; my $y = 7; my $php = "<? echo $x * $y ?>"; my ($r, $w); my $pid = open2($r, $w, 'php -q'); print $w $php; close $w; my $result = <$r>; print "$x * $y = $result\n";
Re: Running PHP
by MonkPaul (Friar) on Apr 16, 2005 at 18:43 UTC
    Excellent!!
    Well done that man (or woman ... covering ones ass).

    Cheers
    MonkPaul.