PHP代码执行与命令执行的函数
1.常见函数列表
函数 | 作用 |
eval() | 它可以执行传入的字符串作为 PHP 代码,并返回执行后的结果。 |
assert() | 会将字符串当做 PHP 代码来执行 |
preg_replace() | 是 PHP 中的一个字符串操作函数,用于对字符串进行正则表达式替换 |
call_user_func() | 用于调用一个可以调用的函数并传递参数 |
call_user_func_array() | 函数与 call_user_func() 函数类似,都可以用来动态调用函数或方法,不同之处在于它通过一个数组来传递参数,而不是多个参数。 |
array_map() | 主要作用是将原始数组的每个元素都通过回调函数进行处理,并返回一个新的数组,其中新数组的元素的数目与原始数组的元素数目相同 |
a ( a( a(b) | 动态调用一个函数或方法 |
system() | 用于执行外部程序并将结果返回给 PHP 脚本,主动输出结果。 |
shell_exec() | 用于执行外部程序并获取结果作为一个字符串返回给 PHP 脚本。与 exec() 不同,shell_exec() 函数会返回整个程序的输出结果,而不仅仅是最后一行输出的信息。 |
exec() | 用于执行外部程序,要用echo输出,只输出最后一行数据。 |
passthru() | 用于执行外部程序并将结果直接输出到浏览器上 |
popen() | 函数在 PHP 中打开一个管道并执行指定的外部命令或程序,即类似于在操作系统的命令行下运行命令并将结果输出到终端上的操作。 |
反引号 | 反引号 ` 内的字符串,会被解析成OS 命令执行。 |
2.下面演示函数的基本使用:
- eval函数的用法:会将传入的符合PHP语法的字符串当作代码执行,返回执行结果。
- assert函数的用法:会将传入的符合PHP语法的字符串当作代码执行,只能接受单条PHP语句。
- preg_replace:字符串正则匹配替换函数,按正则匹配字符串内容,然后进行替换。
- call_user_func:调用用户自定义的可调函数,并传入参数,第一个参数是指定调用的函数名,第二个之后的多个参数是传入的实参值。
- array_map: 将原始数组的每个元素都通过回调函数进行处理,并返回一个新的数组。
- system:用于执行操作系统命令,主动输出。
- exec:用于执行操作系统命令,只输出结果最后一行,需要用echo、printf等语句输出。
- shell_exec:用于执行系统命令,结果全部输出,需要使用输出语句echo、print等,功能比exec函数强大。
- passthru:用于执行系统命令,主动全部输出。
- popen():函数在 PHP 中打开一个管道并执行指定的外部命令或程序,即类似于在操作系统的命令行下运行命令并将结果输出到终端上的操作。popen() 函数接收两个参数:第一个参数是要执行的外部命令,第二个参数是命令的执行模式,可以是 “r”(只读模式)或 “w”(只写模式)。
- 反单引号 ` 将反单引号中的内容当作操作系统命令执行。