duanlu9557 2016-11-28 13:34
浏览 139
已采纳

PHP passthru执行状态

I'm trying to use the PHP passthru function to execute an OS command on Linux.

I am using it as follows. The Linux command is just to list files in a directory I know does not exist and then I am just echoing the status to make sure it's not 0.

$osexec = "ls /tp";
$status = 0;

$result = passthru($osexec, $status);

echo $status;

However the status seems to be the entire output of the command including the status number

ls: /tp: No such file or directory
2

Why is this?

  • 写回答

2条回答 默认 最新

  • drzbc6003 2016-11-28 13:53
    关注

    You are seeing stderr plus the $status value. To hide stderr you could do the following:

    // 2> /dev/null to hide stderr
    $osexec = "ls /tp 2> /dev/null";
    $status = 0;
    
    $result = passthru($osexec, $status);
    
    echo $status;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀