當我執行命令時,為什麼PHP會自動添加'1'?
P粉512729862
P粉512729862 2023-09-17 13:04:54
0
1
531

我有一個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粉512729862
P粉512729862

全部回覆(1)
P粉990568283

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

#您可能需要修改您的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);
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!