PHP中常见的⼏种运⾏代码的⽅式常见的运⾏程序的⽅法有
shell_exec
``(反引号)
eval
system
exec
passthru
下⾯分别介绍他们的⽤法:
名称解释返回值注意
shell_exec 通过 shell 环境执⾏命令,
并且将完整的输出以字符串
的⽅式返回。与执⾏操作符
(也叫执⾏运算符)相同
命令执⾏的输出。如
果执⾏过程中发⽣错
误或者进程不产⽣输
出,则返回NULL。
``(反引号)PHP 将尝试将反引号中的内
容作为 shell 命令来执⾏,
并将其输出信息返回(即,
可以赋给⼀个变量⽽不是简
单地丢弃到标准输出)。使
⽤反引号运算符(`)的效果与
函数 shell_exec() 相同。
反引号运算符
在激活了安全
模式或者关闭
了
shell_exec()
时是⽆效的。
与其它某些语
⾔不同,反引
号不能在双引
号字符串中使
⽤。
eval把字符串作为PHP代码执
⾏。eval() 返回 NULL,除
⾮在执⾏的代码中
return 了⼀个值,函
数返回传递给 return
的值。 PHP 7 开始,
执⾏的代码⾥如果有
⼀个 parse
error,eval() 会抛出
ParseError 异常。在
PHP 7 之前,如果在
执⾏的代码中有
parse error,eval() 返
回 FALSE,之后的代
常用的php代码实例码将正常执⾏。⽆法
使⽤
set_error_handler()
捕获 eval() 中的解析
错误。
函数eval()语⾔
结构是⾮常危
险的,因为它
允许执⾏任意
PHP 代码。
它这样⽤是很
危险的。如果
您仔细的确认
过,除了使⽤
此结构以外别
⽆⽅法, 请多加
注意,不要允
许传⼊任何由
⽤户提供的、
未经完整验证
过的数据。
system执⾏外部程序,并且显⽰输
出。成功则返回命令输出的最后⼀⾏,失败则返回 FALSE。
exec执⾏⼀个外部程序。命令执⾏结果的最后⼀⾏内容。如果你需要获取未经处理的全部输出数据,请使⽤passthru() 函数。
passthru 执⾏外部程序并且显⽰原始
输出。同 exec() 函数类似,
passthru() 函数也是⽤来执
⾏外部命令(command)
的。当所执⾏的 Unix 命令
输出⼆进制数据,并且需要
直接传送到浏览器的时候,
需要⽤此函数来替代 exec()
或 system() 函数。常⽤来
执⾏诸如 pbmplus 之类的可
以直接输出图像流的命令。
没有返回值
以直接输出图像流的命令。
通过设置 Content-type 为
image/gif,然后调⽤
pbmplus 程序输出 gif ⽂
件,就可以从 PHP 脚本中
直接输出图像到浏览器。
— 把字符串转码为可以在 shell 命令⾥使⽤的参数
— shell 元字符转义
— 执⾏⼀个外部程序
— 执⾏外部程序并且显⽰原始输出
— 关闭由 proc_open 打开的进程并且返回进程退出码
— 获取由 proc_open 函数打开的进程的信息
— 修改当前进程的优先级
— 执⾏⼀个命令,并且打开⽤来输⼊/输出的⽂件指针。
—
杀除由 proc_open 打开的进程
— 通过 shell 环境执⾏命令,并且将完整的输出以字符串的⽅式返回。 — 执⾏外部程序,并且显⽰输出
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论