Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menjalankan skrip Python dalam program PHP
(Tutorial disyorkan: Tutorial video PHP)
Perkenalkan cara menjalankan skrip Python dalam program php,
Penjalanan program python dalam PHP bergantung terutamanya pada fungsi pelaksanaan program
Berikut ialah tiga fungsi yang berkaitan: exec(), system() dan passthru().
Di sini kita bercakap tentang fungsi exec(), memperkenalkan penggunaan fungsi ini untuk menghantar parameter,
dan cara menggunakan python untuk mengembalikan data josn untuk digunakan php.
Laksanakan program luaran
exec ( string $command [, array &$output [, int &$return_var ]] ) : string
Perihalan parameter:
arahan: untuk dilaksanakan Perintah, yang merangkumi tiga subrentetan Subrentetan pertama ialah penterjemah sistem semasa yang digunakan, subrentetan kedua ialah lokasi skrip yang akan dilaksanakan dan subrentetan ketiga ialah bilangan parameter tanpa had yang perlu dimasukkan. tengah Pisahkan dengan ruang dan perhatikan format. Gunakan ruang untuk memisahkan subrentetan.
output: Jika parameter output disediakan, tatasusunan ini akan diisi dengan output pelaksanaan perintah, satu elemen dalam tatasusunan untuk setiap baris output. (Nota: Apa yang disimpan dalam output bukanlah nilai pulangan dalam python, dan semua nilai pulangan tidak akan disimpan. Apa yang disimpan dalam output ialah nilai output dalam skrip python, iaitu semua output data oleh print() function)
return_var: Jika kedua-dua parameter output dan return_var disediakan, status pulangan selepas pelaksanaan arahan akan ditulis kepada pembolehubah ini.
index.php
<?php $re = exec('python ceshi.py', $out); // $re = iconv('gbk', 'utf-8', $re); var_dump($out); echo '<br/>'; var_dump($re);
ceshi.py
def send(): data = '1,2,3,4,5' print(data) if __name__ == '__main__': send()
(Nota penting: Jika data dikembalikan oleh Skrip Python mengandungi bahasa Cina, anda perlu menggunakan iconv('gbk', 'utf-8', $re); data
inde.php
$canshu1 = '这是PHP传过来的参数'; $canshu2 = date('Y-m-d'); $re = exec("python ceshi.py $canshu1 $canshu2"); $re = iconv('gbk', 'utf-8', $re); var_dump($re);
import sys def send(): # a1 = sys.argv[1] # a2 = sys.argv[2] re = sys.argv[1:] data = '1,2,3,4,5,' + ','.join(re) # 转字符串 print(data) if __name__ == '__main__': send()<.> untuk menerima data json yang dikembalikan:
(Apabila bercakap tentang aksara Cina, ensure_ascii=False perlu dinyatakan)
import sys import json def send(): dict = {'id':111, 'title':'测试title'} dict['data'] = sys.argv[1:] jsonArr = json.dumps(dict, ensure_ascii=False) print(jsonArr) if __name__ == '__main__': send()2. system()
Laksanakan atur cara luaran dan paparkan output
Jika PHP berjalan dalam modul pelayan, fungsi system() juga akan cuba memuat semula cache output pelayan web secara automatik selepas setiap baris output.
Jika anda ingin mendapatkan output mentah arahan tanpa sebarang pemprosesan, sila gunakan fungsi passthru().system ( string $command [, int &$return_var ] ) : string
index.php
Versi asal test.py digunakan di sini dan kesan output adalah seperti berikut:<?php echo '这是运行直接输出:'; $re = system('python ceshi.py'); // $re = iconv('gbk', 'utf-8', $re); echo '<br/>'; echo '这是赋值输出:'; var_dump($re);3. passthru( )
Laksanakan program luaran dan paparan output
index.php
passthru ( string $command [, int &$return_var ] ) : voidVersi asal test.py digunakan di sini dan kesan output adalah seperti berikut:
echo '这是运行直接输出:'; $re = passthru('python ceshi.py'); // $re = iconv('gbk', 'utf-8', $re); echo '<br/>'; echo '这是赋值输出:'; var_dump($re);(tutorial disyorkan:
Tutorial video PHP
)Atas ialah kandungan terperinci Bagaimana untuk menjalankan skrip Python dalam program PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!