Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
系统(';php file.php';);不';我不工作,为什么?_Php_System_Execute - Fatal编程技术网

系统(';php file.php';);不';我不工作,为什么?

系统(';php file.php';);不';我不工作,为什么?,php,system,execute,Php,System,Execute,都不是 也不是 成功了。为什么? 我试过-q,试过#/usr/bin/php等没有更多信息。。。这可能是指向PHP可执行文件的路径、指向file.PHP的路径或文件权限问题。没有更多信息。。。它可能是指向PHP可执行文件的路径、指向file.PHP的路径或文件权限问题。您应该使用-f来调用它,但如果没有它,它也应该可以工作: <?php system('/usr/bin/php file.php'); ?> 你说“它不起作用”是什么意思 您是否希望将内容输出为脚本中的内

都不是


也不是


成功了。为什么?


我试过
-q
,试过
#/usr/bin/php

没有更多信息。。。这可能是指向PHP可执行文件的路径、指向file.PHP的路径或文件权限问题。

没有更多信息。。。它可能是指向PHP可执行文件的路径、指向file.PHP的路径或文件权限问题。

您应该使用-f来调用它,但如果没有它,它也应该可以工作:

<?php system('/usr/bin/php file.php'); ?>

你说“它不起作用”是什么意思

您是否希望将内容输出为脚本中的内容?使用或

是否要将内容放在变量中?使用


您可以通过使用backtick操作符而不是system来查看从命令中得到的结果。

您应该使用-f来调用它,但在没有它的情况下也应该可以使用它:

<?php system('/usr/bin/php file.php'); ?>

你说“它不起作用”是什么意思

您是否希望将内容输出为脚本中的内容?使用或

是否要将内容放在变量中?使用


通过使用backtick操作符而不是system,您可以看到从命令返回的内容。

当您将完整路径传递到“file.php”时会发生什么


另外,尝试将输出重定向到一个文件(但stdout和stderr除外),以便查看生成的错误消息。

当您将完整路径传递到“file.php”时会发生什么


另外,尝试将输出重定向到一个文件(但stdout和stderr除外),以便查看生成的错误消息。

可能是由于安全模式


可能是由于安全模式


谢谢大家的回答

对于“不工作”,我的意思是:它不会返回或打印任何内容

我有两个文件a.php&&b.php(具有所有权限),安全模式已关闭

b、 php


和a.php

<?php
$a = system('/usr/bin/php -f /Applications/MAMP/htdocs/a.php',$b);
print_r($a);
echo '-'; # for separation
print_r($b); ?>

当我从浏览器(localhost/b.php)运行b.php时,它会打印:

字符串(0)” -内部(5)


这意味着$b变量是5,但是。。。5什么?

谢谢大家的回答

对于“不工作”,我的意思是:它不会返回或打印任何内容

我有两个文件a.php&&b.php(具有所有权限),安全模式已关闭

b、 php


和a.php

<?php
$a = system('/usr/bin/php -f /Applications/MAMP/htdocs/a.php',$b);
print_r($a);
echo '-'; # for separation
print_r($b); ?>

当我从浏览器(localhost/b.php)运行b.php时,它会打印:

字符串(0)” -内部(5)


这意味着$b变量是5,但是。。。5什么?

当您打开错误报告时,它会说什么

<?php echo 'hello world'; ?>

当您打开错误报告时,它会说什么

<?php echo 'hello world'; ?>
当我改变时

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
$a = system('/usr/bin/php -f /Applications/MAMP/htdocs/a.php',$b);
print_r($a);
echo '-'; # for separation
print_r($b);
为了

然后它说是127而不是5,我想当我改变时,这些是错误代码

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
$a = system('/usr/bin/php -f /Applications/MAMP/htdocs/a.php',$b);
print_r($a);
echo '-'; # for separation
print_r($b);
为了


然后它说的是127而不是5,我想这些是错误代码

你显然不了解系统功能是如何工作的。你真正需要的可能是。例如,用popen启动进程,然后用fgets读取其输出


或者,您可以按照其他人的建议使用backtick运算符。

您显然不了解系统功能是如何工作的。你真正需要的可能是。例如,用popen启动进程,然后用fgets读取其输出

或者,您可以按照其他人的建议使用backtick运算符。

尝试:

('/bin/php -f /Applications/MAMP/htdocs/a.php',$b);
$output = array();
$returnCode = 0;
exec('/usr/bin/php -f /Applications/MAMP/htdocs/a.php 2>&1', $output, $returnCode);
print_r($output);
2>&1
将stderr重定向到stdout,因此任何错误消息都将在
$output
中捕获,请尝试:

('/bin/php -f /Applications/MAMP/htdocs/a.php',$b);
$output = array();
$returnCode = 0;
exec('/usr/bin/php -f /Applications/MAMP/htdocs/a.php 2>&1', $output, $returnCode);
print_r($output);

2>&1
将stderr重定向到stdout,因此任何错误消息都将在
$output
中捕获,请稍候。。。你到底想在这里实现什么?只需运行a.php并将输出返回到浏览器?如果是那样的话,那就好了。从您发布的a.php()内容的外观来看,这似乎是您想要的


如果a.php的内容有更多内容,请发回并解释您真正想要做什么。

请稍候。。。你到底想在这里实现什么?只需运行a.php并将输出返回到浏览器?如果是那样的话,那就好了。从您发布的a.php()内容的外观来看,这似乎是您想要的

如果a.php的内容有更多内容,请发回并解释您真正想要做什么。

尝试:

('/bin/php -f /Applications/MAMP/htdocs/a.php',$b);
$output = array();
$returnCode = 0;
exec('/usr/bin/php -f /Applications/MAMP/htdocs/a.php 2>&1', $output, $returnCode);
print_r($output);
这将允许您捕获子shell的输出并捕获错误。

尝试:

('/bin/php -f /Applications/MAMP/htdocs/a.php',$b);
$output = array();
$returnCode = 0;
exec('/usr/bin/php -f /Applications/MAMP/htdocs/a.php 2>&1', $output, $returnCode);
print_r($output);

这将允许您捕获子shell的输出并捕获错误。

}对于“不工作”,我的意思是:它不会返回或打印任何内容

尝试在服务器上获取终端/外壳,然后尝试使用系统命令。如果您的操作系统是unixy,您可以使用类似于的php来查找php cli的正确路径

您安装了php cli,对吗?默认情况下通常不安装它

您的web服务器是否执行chroot或其他操作?在您尝试使用system()的环境中可能不存在php cli


与其尝试调用脚本,不如尝试执行一个简单的系统('php-v')。一旦你得到了正确的php版本号,然后将调用添加到你的脚本中。

}对于“不工作”,我的意思是:它不会返回或打印任何内容

尝试在服务器上获取终端/外壳,然后尝试使用系统命令。如果您的操作系统是unixy,您可以使用类似于的php来查找php cli的正确路径

您安装了php cli,对吗?默认情况下通常不安装它

您的web服务器是否执行chroot或其他操作?在您尝试使用system()的环境中可能不存在php cli


与其尝试调用脚本,不如尝试执行一个简单的系统('php-v')。一旦您正确地输出了php版本号,然后将调用添加到您的脚本中。

我认为您被否决了,因为在描述时,“不工作”是绝对的“不,不”