使用PHP中的system()执行程序时出错:在抛出';标准::逻辑错误';
下面是我的index.php中的一段代码使用PHP中的system()执行程序时出错:在抛出';标准::逻辑错误';,php,apache,exception,Php,Apache,Exception,下面是我的index.php中的一段代码 <?php /*cmd is a program wittern by another people that I do not know much*/ $cmd="absolutePath/cmd"; $ret=0; system($cmd,$ret); ?> <p id="return"><?php echo $ret?></p> 如果我只是这样在命令行中执行程序:$absolutePath/c
<?php
/*cmd is a program wittern by another people that I do not know much*/
$cmd="absolutePath/cmd";
$ret=0;
system($cmd,$ret);
?>
<p id="return"><?php echo $ret?></p>
如果我只是这样在命令行中执行程序:$absolutePath/cmd
然后echo$?
我得到0,这是正确的
如果我像这样在命令行中执行index.php:php-f index.php
我在输出中得到了正确的0
但是,如果我在浏览器(chrome和IE)中打开网页,
我得到了134
和错误消息:
在抛出“std::logic_error”实例后调用terminatewhat():基本\u字符串::\u S\u构造null无效中止 我在stackoverflow上发现的问题与此相同: 而抛出的异常则不同。基于,系统(命令,return\u var): 如果存在return\u var参数,则已执行命令的返回状态将写入该变量。 因此,返回状态为134。128之后的退出状态,即128+n,其中n是一个小的正数,通常意味着程序在信号“n”的情况下崩溃。所以,这是信号6。根据,信号6表示“中止信号”
所以,我猜,外部程序
$cmd
可能不是从浏览器运行的。你在抽什么?您的标记与问题无关…抱歉,它们是我最后一个问题的标记…原来原因是www数据用户没有env变量$HOME。