- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
php 调用外部 shell 的方法总结
)、执行外部命令
)、在打开文件时有些限制
)、连接MySQ数据库
)、基于的认证 在安全模式下,只有在特定目录中的外部程序才可以被执行,
对其它程序的调用将被拒绝。
该目录可以在 php.ini 文件中用 safe_mode_exec_dir 指令,或 在编译PHF是加上--with-exec-dir 选项来指定,默认是
/usr/local/php/bin 。
如果调用一个应该可以输出结果的外部命令(意思是 PHP脚本 无错),得到的却是一片空白,那么很可能 PHP是运行在安全模式下 的。
遇到这种情况,如何处理呢?
在PHP中调用外部命令,可以用如下三种方法来实现:
PHP 提供的专门函数
PHP 提供共了 3 个专门的执行外部命令的函数: system() , exec() , passthru() 。
system()
原型: stringsystem(stringmand[,intreturn_var])
system() 函数很其它语言中的差不多,它执行给定的命令,输 出和返回结果。第二个参数是可选的, 用来得到命令执行后的状态码。
例子: 复制代码代码如下 :
?php
system(/usr/local/bin/webalizer/webalizer);
?
exec()
原型:
stringexec(stringmand[,stringarray[,intreturn_var]])
exec() 函数与 system() 类似,也执行给定的命令,但不输出结 果,而是返回结果的最后一行。虽然它只返回命令结果的最后一行, 但用第二个参数 array 可以得到完整的结果, 方法是把结果逐行追加 到 array 的结尾处。所以如果 array 不是空的,在调用之前最好用 unset() 最它清掉。只有指定了第二个参数时, 才可以用第三个参数, 用来取得命令执行的状态码。
例子:
复制代码代码如下 :
?php
exec(/bin/ls-l);
exec(/bin/ls-l,$res);
#$res 是一个数据,每个元素代表结果的一行 exec(/bin/ls-l,$res,$rc);
#$rc 的值是命令 /bin/ls-l 的状态码。成功的情况下通常是 0
?
passthru()
原型: voidpassthru(stringmand[,intreturn_var])
passthru() 只调用命令,不返回任何结果,但把命令的运行结 果原样地直接输出到标准输出设备上。所以 passthru() 函数经常用 来调用象 pbmplus(Unix 下的一个处理图片的工具, 输出二进制的原 始图片的流)这样的程序。同样它也可以得到命令执行的状态码。
例子:
复制代码代码如下 :
?php
header(Content-type:image/gif);
passthru(./ppmtogifhunte.ppm);
?
您可能关注的文档
最近下载
- 防火墙安全策略巡检报告.doc VIP
- XX职业技术学院“十五五”中长期发展规划(2026-2030年).docx
- 四川省成都市温江区2024-2025学年八年级上学期1月期末物理试题.docx VIP
- 游泳馆托管服务学生游泳培训服务方案.doc VIP
- “双减”背景下初中数学课堂教学提质增效探究 论文.docx VIP
- QC_T 556-2023 汽车制动器温度测量方法及热电偶安装要求.pdf VIP
- 清水河储能电站施工方案.pdf VIP
- 广州永日电梯电气原理图.pdf VIP
- 江苏省2022年高中学业水平合格性考试历史试卷真题(含答案详解).docx VIP
- 数学八下练习(图形的平移与旋转 ).doc VIP
原创力文档


文档评论(0)