首頁  >  問答  >  主體

當我執行命令時,為什麼PHP會自動添加'1'?

我有一個Python文件,呼叫一個API並獲取一些信息,然後我需要在一個PHP文件中使用這些信息。但是運行PHP時,我得到了“'1' is not recognized as an internal or external command, operable program or batch file.”的錯誤。這與我在Python檔案中使用sys.argv有關嗎? 具體來說:

id_num = sys.argv[1]

我正在測試的PHP程式碼如下:

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

列印出來是為了確保命令沒有問題,列印輸出看起來沒問題。 列印輸出如:python getData.py CRT67547

P粉512729862P粉512729862422 天前536

全部回覆(1)我來回復

  • P粉990568283

    P粉9905682832023-09-18 00:50:04

    編輯:重新閱讀問題,為了清晰起見進行了修改

    #您可能需要修改您的PHP中的shell_exec參數。在PHP中,&&是一個AND邏輯運算符,但我假設您希望它與您的兩個命令一起在shell中執行,如下所示:

    $output = shell_exec($cd_command . '&&' . $command);

    或者,為了讓您的整體程式碼更簡潔:

    function getData($var_one)
    {
        $command = 'cd Location && python getData.py ' . $var_one;
        $output = shell_exec($command);
        return $output;
    }

    然後您的shell應該運行cd Location && python getData.py CRT67547

    根據您設定的位置,您甚至可以這樣做:

    function getData($var_one)
    {
        $command = 'python Location/getData.py ' . $var_one;
        $output = shell_exec($command);
        return $output;
    }

    您可以將其簡化為:

    function getData($var_one)
    {
        return shell_exec('python Location/getData.py ' . $var_one);
    }

    回覆
    0
  • 取消回覆