php - 为什么下面的 php 代码没有返回预期值?

标签 php linux bash scripting

我正在尝试制作一些 php 脚本,这些脚本将在其他系统调用命令(如 top 和其他自定义脚本)中运行。你可以看到下面的代码非常简单。我们在下面的 php 中遇到的问题是,当我从 linux 提示符调用 php 时,如:

#php checkTOP.php 

它将在屏幕上返回 top -n 1 输出,没有问题。

当我使用 http://url.com/checkTOP.php 从网络服务器运行脚本时它只返回以下内容:

program:/usr/bin/top -n 1 ver1 = retval = 1 Returned not zero

这是我的调试语句。

<?php
        $program="/usr/bin/top -n 1";
        echo "program:{$program}<br /> \n";
        $ver1=system($program,$retval);
        echo "ver1 = {$ver1}<br />\n";
        echo "retval = {$retval}<br /> \n";
        if($retval==0)
        {
                echo "Returned 0<br />\n";
        }
        else
        {
                echo "Returned not zero <br />\n";
        }
        die;
?>

变化 1:还有一件事。所有权限均已正确设置/usr/bin/top 设置为 root:apache 和 rxrxrx 以及所有目录/usr/bin。

最佳答案

奥莱打败了我;我使用了输出缓冲,所以我会发布它:

<code><?PHP</code><br/> ob_start();<br/> $program="/usr/bin/top -n 1 -b";<br/> passthru($program);<br/> $t=ob_get_contents();<br/> ob_end_clean();<br/> <code>echo "<PRE>$t</PRE>";</code> <code>?></code>

关于php - 为什么下面的 php 代码没有返回预期值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/748488/

相关文章:

linux - Windows Bash (WSL) - sudo : no tty present and no askpass program specified

python - 我在 1and1 上的 python 安装停止工作(bashrc 问题)

linux - 编写一个列出所有文件和子目录的 bash 脚本

linux - 删除公共(public)子目录

bash - 源文件如何继承陷阱 DEBUG?

php - TCPDF 嵌入字体根据阅读器消失

php - 如何合并 MySQL 表中的两条冗余记录,维护所有 PK/FK 关系?

linux - 一种在linux中用绝对路径替换快捷方式的方法

php - PDF 解析器 PHP 库不工作

php - htaccess url 重写关于 request_uri 的混淆