(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()
(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()
Laksanakan atur cara luaran dan paparkan output
Serupa dengan versi C fungsi sistem(), fungsi ini melaksanakan arahan yang ditentukan oleh parameter arahan dan mengeluarkan hasil pelaksanaan.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);
Laksanakan program luaran dan paparan output
Serupa dengan fungsi exec(), fungsi passthru() juga digunakan untuk melaksanakan perintah luaran (perintah) . Apabila perintah Unix yang dilaksanakan mengeluarkan data binari dan perlu dihantar terus ke penyemak imbas, fungsi ini perlu digunakan dan bukannya fungsi exec() atau system(). Biasa digunakan untuk melaksanakan arahan seperti pbmplus yang boleh terus mengeluarkan aliran imej. Dengan menetapkan Jenis Kandungan kepada imej/gif dan kemudian memanggil program pbmplus untuk mengeluarkan fail gif, anda boleh terus mengeluarkan imej tersebut kepada penyemak imbas daripada skrip PHP.index.php
passthru ( string $command [, int &$return_var ] ) : void
echo '这是运行直接输出:'; $re = passthru('python ceshi.py'); // $re = iconv('gbk', 'utf-8', $re); echo '<br/>'; echo '这是赋值输出:'; var_dump($re);
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!