Maison > Questions et réponses > le corps du texte
J'ai un fichier Python qui appelle une API et obtient des informations que j'ai ensuite besoin d'utiliser dans un fichier PHP. Mais lors de l'exécution de PHP, j'obtiens l'erreur "'1' n'est pas reconnu comme une commande interne ou externe, un programme exploitable ou un fichier batch." Est-ce lié à mon utilisation de sys.argv dans le fichier Python ? Plus précisément :
id_num = sys.argv[1]
Le code PHP que je teste est le suivant :
<?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); ?>
Imprimez-le pour vous assurer qu'il n'y a pas de problème avec la commande et que l'impression semble correcte.
L'impression est la suivante : python getData.py CRT67547
P粉9905682832023-09-18 00:50:04
Edit : Relisez la question, révisée pour plus de clarté
Vous devrez peut-être modifier les opérateurs logiques shell_exec
参数。在PHP中,&&
是一个AND
dans votre PHP, mais je suppose que vous souhaitez qu'il soit exécuté dans le shell avec vos deux commandes, comme ceci :
$output = shell_exec($cd_command . '&&' . $command);
Ou, pour rendre votre code global plus propre :
function getData($var_one) { $command = 'cd Location && python getData.py ' . $var_one; $output = shell_exec($command); return $output; }
Votre shell devrait alors fonctionner cd Location && python getData.py CRT67547
.
En fonction de l'emplacement que vous avez défini, vous pouvez même faire ceci :
function getData($var_one) { $command = 'python Location/getData.py ' . $var_one; $output = shell_exec($command); return $output; }
Vous pouvez le simplifier comme suit :
function getData($var_one) { return shell_exec('python Location/getData.py ' . $var_one); }