我在同一個目錄中有兩個文件。我想從命令行執行第一個命令,這會調用第二個命令。由於某種原因,這是行不通的。我沒有收到任何錯誤,也沒有任何迴應。在另一個php腳本中執行一個php腳本(帶參數)
// test.php
<?php
$value = 123;
exec("php -f test1.php $value");
?>
和
// test1.php
<?php
echo ">>>>>>>>".$argv[1]."<<<<<<<<";
?>
我在同一個目錄中有兩個文件。我想從命令行執行第一個命令,這會調用第二個命令。由於某種原因,這是行不通的。我沒有收到任何錯誤,也沒有任何迴應。在另一個php腳本中執行一個php腳本(帶參數)
// test.php
<?php
$value = 123;
exec("php -f test1.php $value");
?>
和
// test1.php
<?php
echo ">>>>>>>>".$argv[1]."<<<<<<<<";
?>
你沒有抓住那個命令的輸出。這就是爲什麼儘管執行命令你什麼也看不到的原因。如何做到這一點有幾種方法。這是最常見的:
// 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;
?>
是否有一個原因,你不能使用'include('test1.php');'並讓test1.php echo'$ value'? –
test1.php應該在循環內執行並使用參數。由於我無法修改這第二個腳本,我需要找到一種方法來執行它的參數。 – Augusto
如果你知道第二個腳本中變量的名字,它仍然可以完成,但我認爲在這種情況下hek2mgl的答案會更好。 –