2013-07-12 135 views
1

我在同一個目錄中有兩個文件。我想從命令行執行第一個命令,這會調用第二個命令。由於某種原因,這是行不通的。我沒有收到任何錯誤,也沒有任何迴應。在另一個php腳本中執行一個php腳本(帶參數)

// test.php 
<?php 
    $value = 123; 
    exec("php -f test1.php $value"); 
?> 

// test1.php 
<?php 
    echo ">>>>>>>>".$argv[1]."<<<<<<<<"; 
?> 
+0

是否有一個原因,你不能使用'include('test1.php');'並讓test1.php echo'$ value'? –

+0

test1.php應該在循環內執行並使用參數。由於我無法修改這第二個腳本,我需要找到一種方法來執行它的參數。 – Augusto

+1

如果你知道第二個腳本中變量的名字,它仍然可以完成,但我認爲在這種情況下hek2mgl的答案會更好。 –

回答

3

你沒有抓住那個命令的輸出。這就是爲什麼儘管執行命令你什麼也看不到的原因。如何做到這一點有幾種方法。這是最常見的:

// test.php 
<?php 
    $value = 123; 
    // will output redirect directly to stdout 
    passthru("php -f test1.php $value"); 

    // these functions return the outpout 
    echo shell_exec("php -f test1.php $value"); 
    echo `php -f test1.php $value`; 
    echo system("php -f test1.php $value"); 

    // get output and return var into variables 
    exec("php -f test1.php $value", $output, $return); 
    echo $output; 
?> 
+0

這個技巧。謝謝! – Augusto

+0

'passthru()'只是我第一個想到如何讓你看到輸出。請注意,還有其他方法可以更好地適應大多數情況。檢查我的更新 – hek2mgl

相關問題