导航:首页 > 编程语言 > phpshell返回值

phpshell返回值

发布时间:2023-03-05 23:30:32

php调用shell命令,怎么实现,我为什么shell_exec的返回值总是null呢

是权限问题,php默认的用户没有权限执行shell

Ⅱ 每天三分钟搞定linux shell脚本26 函数返回值

函数可以产生返回值,有3个方法。
1)默认情况下是 最后一条语句对应的退出状态码
2) return 一个整数值
3)使用 echo语句 指定输出
针对 方法1 建立如下脚本:

运行后输出结果为:

针对 方法2 建立脚本:

运行后结果为:

针对 方法3 建立脚本

运行后输出结果为:

方法3使用echo语句来返回结果,而且 并没有把这个输出到stdout 中。

函数返回数组与参数传递数组一样,使用echo语句。举例如下:

运行后输出结果为:

Ⅲ php调用shell的方法技巧

php调用shell的方法技巧

一、配置

查看php.ini中配置是否打开安全模式,主要是以下三个地方

safe_mode = (这个如果为off下面两个就不用管了)

disable_functions =

safe_mode_exec_dir=

二、使用

由于PHP基本是用于WEB程序开发的,所以安全性成了人们考虑的一个重要方面。于是PHP的设计者们给PHP加了一个门:安全模式。如果运行在安全模式下,那么PHP脚本中将受到如下四个方面的限制:

① 执行外部命令

② 在打开文件时有些限制

③ 连接MySQL数据库

④ 基于HTTP的认证

在安全模式下,只有在特定目录中的外部程序才可以被执行,对其它程序的调用将被拒绝。这个目录可以在php.ini文件中用 safe_mode_exec_dir指令,或在编译PHP是加上--with-exec-dir选项来指定,默认是/usr/local/php /bin。

如果你调用一个应该可以输出结果的外部命令(意思是PHP脚本没有错误),得到的'却是一片空白,那么很可能你的网管已经把PHP运行在安全模式下了。

三、如何做?

在PHP中调用外部命令,可以用如下三种方法来实现:

1) 用PHP提供的专门函数

PHP提供共了3个专门的执行外部命令的函数:system(),exec(),passthru()。

system()

原型:string system (string command [, int return_var])

system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。

例子:

复制代码 代码如下:system("/usr/local/bin/webalizer/webalizer");

exec()

原型:string exec (string command [, string array [, int return_var]])

exec() 函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。虽然它只返回命令结果的最后一行,但用第二个参数array可以得到完整的结果,方法是把结果逐行追加到array的结尾处。所以如果array不是空的,在调用之前最好用unset()最它清掉。只有指定了第二个参数时,才可以用第三个参数,用来取得命令执行的状态码。

例子:

复制代码 代码如下:exec("/bin/ls -l");

exec("/bin/ls -l", $res);

#$res是一个数据,每个元素代表结果的一行

exec("/bin/ls -l", $res, $rc);

#$rc的值是命令/bin/ls -l的状态码。成功的情况下通常是0

passthru()

原型:void passthru (string command [, int return_var])

passthru() 只调用命令,不返回任何结果,但把命令的运行结果原样地直接输出到标准输出设备上。所以passthru()函数经常用来调用象pbmplus(Unix 下的一个处理图片的工具,输出二进制的原始图片的流)这样的程序。同样它也可以得到命令执行的状态码。

例子:

复制代码 代码如下:header("Content-type: image/gif");

passthru("./ppmtogif hunte.ppm");

希望本文所述对大家的PHP程序设计有所帮助。

;

Ⅳ shell脚本的一个返回值问题。

首先,要理解 (( )) 这个符号用作数学运算或整数的逻辑比较,一个例子:
[ “$a” -lt 16 ] 等同于 (( a < 16 ))

$?则是返回上一个命令的执行结果,成功(逻辑真)返回0,失败(逻辑假)返回1。

本题中,
(( 0 )) 返回逻辑假(false),所以$?返回1;
(( 1 )) 返回逻辑真(true),所以$?返回0。

Ⅳ php调用shell如何取得返回值

<?php
$output = shell_exec('ls -la');//执行linux命令:ls -la
echo "<pre>$output</pre>";//输出返回值
?>

Ⅵ shell里判断返回值的问题

你不要输出结果,那就将结果重定向至 /dev/null 即可,具体代码就是:

你的命令后面加上 >/dev/null 就不会有输出结果了。举个简单的例子:

ping -c 192.168.1.1 这个命令,用于判断到这个IP是否畅通,如果你在后面不加上重定向。

那么每次都会输出结果,也就是你现在的情况。所以下面代码我就在ping的后面加上了重定向

代码,让结果屏蔽,仅获取返回值$?,那屏幕上就不会显示ping的结果了,只会显示下面判断结果,懂了么?

#!/bin/bash
ping-c2192.168.1.1>/dev/null
if[$?-eq0];then
echo192.168.1.1isokey!
else
echo192.168.1.1isfailed!
fi

Ⅶ 我在php中执行shell命令不成功,但是直接命令行执行可以。

passthru的返回值是void,所以echo无效
要查看命令的返回值,应设置passthru的第二个参数
你可以试下

阅读全文

与phpshell返回值相关的资料

热点内容
义隆单片机视频教程 浏览:383
cad安装卡在解压 浏览:615
编程精灵g540 浏览:256
手机文档解压之后解压包去哪儿了 浏览:923
java中网络编程重要吗 浏览:683
如何登录别人的服务器 浏览:626
调度系统软件python 浏览:205
微信大转盘抽奖源码 浏览:497
压缩机损坏的表现 浏览:862
同步数据服务器怎么用 浏览:634
163邮箱服务器的ip地址 浏览:50
服务器跟域是什么 浏览:128
rails启动命令 浏览:465
logistic命令怎么用 浏览:738
c语言点滴pdf 浏览:747
linuxrtc编程 浏览:258
linux打包并压缩命令 浏览:644
aes加密的证书格式 浏览:99
oracledbcalinux 浏览:844
酬勤任务app怎么被特邀 浏览:199