系统(';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版本号,然后将调用添加到您的脚本中。我认为您被否决了,因为在描述时,“不工作”是绝对的“不,不”