开发者

How to call a Python Script from PHP?

I have some code written in PHP, but I hav开发者_Python百科e also developed a script written in Python. Is it possible to call this Python script from the PHP code?

If yes, how can I pass parameters to the Python script from the PHP?

I have tried to find an answer without any success.

Can someone give me a clue?


You use the system function: http://php.net/manual/en/function.system.php

Something like this:

$mystring = system('python myscript.py myargs', $retval);


I managed to make simple function PY([parametress], code) for PHP. You may almost include python code to your PHP. You may pass as well some simple input variables to python process. You cannot get any data back, but I believe that could be easily fixed :) Not ok for using at webhosting (potentionally unsafe, system call), I created it for PHP-CLI..

<?php

function PY()
{
 $p=func_get_args();
 $code=array_pop($p);
 if (count($p) % 2==1) return false;
 $precode='';
 for ($i=0;$i<count($p);$i+=2) $precode.=$p[$i]." = json.loads('".json_encode($p[$i+1])."')\n";
 $pyt=tempnam('/tmp','pyt');
 file_put_contents($pyt,"import json\n".$precode.$code);
 system("python {$pyt}");
 unlink($pyt);
}

//begin
echo "This is PHP code\n";
$r=array('hovinko','ruka',6);
$s=6;

PY('r',$r,'s',$s,<<<ENDPYTHON
print('This is python 3.4 code. Looks like included in PHP :)');
s=s+42
print(r,' : ',s)
ENDPYTHON
); 
echo "This is PHP code again\n";
?> 


You can try this:

python scripts:

 test.py:
        print "hello"

then php Scripts

index.php:
   $i =`python test.py`;
   echo $i;


Yes you can simply use exec() to call python program in php. simple sample program i have included here.

$pyscript = 'G:\wamp\www\ll\test.py';
$python = 'C:\\Python27\\python.exe';

$cmd='$pyscript $python';

exec("$cmd", $output);

You should specify your python.exe path and your python file path.Its must needed in windows environment.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜