2013-07-12 97 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

相关问题