Rumah > Soal Jawab > teks badan
Saya mempunyai fail Python yang memanggil API dan mendapat beberapa maklumat yang kemudiannya perlu saya gunakan dalam fail PHP. Tetapi apabila menjalankan PHP, saya mendapat ralat "'1' tidak diiktiraf sebagai perintah dalaman atau luaran, program yang boleh dikendalikan atau fail kelompok." Adakah ini berkaitan dengan penggunaan sys.argv saya dalam fail Python? Khususnya:
id_num = sys.argv[1]
Kod PHP yang saya uji adalah seperti berikut:
<?php function getData($var_one) { $cd_command = 'cd Location'; $command = 'python getData.py ' . $var_one; print($command); $output = shell_exec($cd_command && $command); return $output; } $test_string = getData("CRT67547"); print($test_string); ?>
Cetak untuk memastikan tiada masalah dengan arahan dan cetakan kelihatan baik.
Cetakan adalah seperti berikut: python getData.py CRT67547
P粉9905682832023-09-18 00:50:04
Sunting: Baca semula soalan, disemak untuk kejelasan
Anda mungkin perlu mengubah suai shell_exec
参数。在PHP中,&&
是一个AND
operator logik dalam PHP anda, tetapi saya mengandaikan anda mahu ia dilaksanakan dalam shell bersama-sama dengan dua arahan anda, seperti ini:
$output = shell_exec($cd_command . '&&' . $command);
Atau, untuk menjadikan keseluruhan kod anda lebih bersih:
function getData($var_one) { $command = 'cd Location && python getData.py ' . $var_one; $output = shell_exec($command); return $output; }
Cangkang anda kemudiannya akan berjalan cd Location && python getData.py CRT67547
.
Bergantung pada lokasi yang anda tetapkan, anda juga boleh melakukan ini:
function getData($var_one) { $command = 'python Location/getData.py ' . $var_one; $output = shell_exec($command); return $output; }
Anda boleh memudahkannya kepada:
function getData($var_one) { return shell_exec('python Location/getData.py ' . $var_one); }