recherche

Maison  >  Questions et réponses  >  le corps du texte

Pourquoi PHP ajoute-t-il automatiquement « 1 » lorsque j'exécute la commande ?

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粉512729862P粉512729862453 Il y a quelques jours558

répondre à tous(1)je répondrai

  • P粉990568283

    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);
    }

    répondre
    0
  • Annulerrépondre