程序执行函数 业 ,精于勤 荒于嬉.
- 程序执行函数 escapeshellarg 把字符串转码为可以在 shell 命令里使用的参数
-
发表日期:2021-07-01 08:56:10 | 来源: | 分类:程序执行函数
-
示例1
<?php system('ls '.escapeshellarg($dir)); ?>
- 程序执行函数 escapeshellcmd shell 元字符转义
-
发表日期:2021-07-01 08:56:11 | 来源: | 分类:程序执行函数
-
示例1
<?php // 我们故意允许任意数量的参数$command = './configure '.$_POST['configure_options']; $escaped_command = escapeshellcmd($command); system($escaped_command); ?>
- 程序执行函数 exec 执行一个外部程序
-
发表日期:2021-07-01 08:56:10 | 来源: | 分类:程序执行函数
-
示例1
<?php // 输出运行中的 php/httpd 进程的创建者用户名// (在可以执行 "whoami" 命令的系统上)echo exec('whoami'); ?>
- 程序执行函数 passthru 执行外部程序并且显示原始输出
-
发表日期:2021-07-01 08:56:10 | 来源: | 分类:程序执行函数
-
passthru
(PHP 4, PHP 5, PHP 7, PHP 8)
passthru — 执行外部程序并且显示原始输出
说明
passthru(string$command
, int&$return_var
= ?): void同 exec() 函数类似, passthru() 函数 也是用来执行外部命令(
command
)的。 当所执行的 Unix 命令输出二进制数据, 并且需要直接传送到浏览器的时候, 需要用此函数来替代 exec() 或 system() 函数。 常用来执行诸如 pbmplus 之类的可以直接输出图像流的命令。 通过设置 Content-type 为image/gif
, 然后调用 pbmplus 程序输出 gif 文件, 就可以从 PHP 脚本中直接输出图像到浏览器。参数
-
command
-
要执行的命令。
-
return_var
-
如果提供
return_var
参数, Unix 命令的返回状态会被记录到此参数。
返回值
没有返回值。
注释
警告当用户提供的数据传入此函数,使用 escapeshellarg() 或 escapeshellcmd() 来确保用户欺骗系统从而执行任意命令。
注意:
如何程序使用此函数启动,为了能保持在后台运行,此程序必须将输出重定向到文件或其它输出流。否则会导致 PHP 挂起,直至程序执行结束。
参见
- exec() - 执行一个外部程序
- system() - 执行外部程序,并且显示输出
- popen() - 打开进程文件指针
- escapeshellcmd() - shell 元字符转义
- 执行运算符
-
- 程序执行函数 proc_close 关闭由 proc_open() 打开的进程并且返回进程退出码
-
发表日期:2021-07-01 08:56:10 | 来源: | 分类:程序执行函数
-
说明
proc_close(resource$process
): intproc_close() 同 pclose() 函数类似, 只是 proc_close() 只能用来关闭由 proc_open() 函数打开的进程。 proc_close() 函数会等待进程终止, 并且返回进程的返回值。 如果有连接到进程的已经打开的管道, 那么需要在调用此函数之前调用 fclose() 函数来关闭管道, 否则会引发死锁 - 在管道处于打开状态时,子进程将不能退出。
返回值
返回进程的终止状态码。 如果发生错误,将返回
-1
。注意:
如果 PHP 是通过 --enable-sigchild 编译的,此函数将没有返回值。
- 程序执行函数 proc_get_status 获取由 proc_open() 函数打开的进程的信息
-
发表日期:2021-07-01 08:56:11 | 来源: | 分类:程序执行函数
-
返回值
如果调用成功,则返回一个包含了进程信息的 array,如果发生错误,返回
false
。 返回的数组包含下列元素:元素 类型 描述 command string 传入 proc_open() 函数的命令行字符串。 pid int 进程 ID running bool true
表示进程还在运行中,false
表示进程已经终止signaled bool true
表示子进程被未捕获的信号所终止。 在 Windows 平台永远为false
。stopped bool true
表示子进程被信号停止。 在 Windows 平台永远为false
。exitcode int 进程的退出码(仅在 running
为false
时有意义)。 仅在第一次调用此函数时会返回实际的值, 后续的调用将返回-1
。termsig int 导致子进程终止执行的信号值 (仅在 signaled
为true
时有意义)。stopsig int 导致子进程停止执行的信号值 (仅在 stopped
为true
时有意义)。
- 程序执行函数 proc_nice 修改当前进程的优先级
-
发表日期:2021-07-01 08:56:11 | 来源: | 分类:程序执行函数
-
示例1
<?php // Highest priorityproc_nice(-20); ?>
- 程序执行函数 proc_open 执行一个命令,并且打开用来输入/输出的文件指针。
-
发表日期:2021-07-01 08:56:11 | 来源: | 分类:程序执行函数
-
示例1
<?php $descriptorspec = array( 0 => array("pipe", "r"), // 标准输入,子进程从此管道中读取数据 1 => array("pipe", "w"), // 标准输出,子进程向此管道中写入数据 2 => array("file", "/tmp/error-output.txt", "a") // 标准错误,写入到一个文件); $cwd = '/tmp'; $env = array('some_option' => 'aeiou'); $process = proc_open('php', $descriptorspec, $pipes, $cwd, $env); if (is_resource($process)) { // $pipes 现在看起来是这样的: // 0 => 可以向子进程标准输入写入的句柄 // 1 => 可以从子进程标准输出读取的句柄 // 错误输出将被追加到文件 /tmp/error-output.txt fwrite($pipes[0], '<?php print_r($_ENV); ?>'); fclose($pipes[0]); echo stream_get_contents($pipes[1]); fclose($pipes[1]); // 切记:在调用 proc_close 之前关闭所有的管道以避免死锁。 $return_value = proc_close($process); echo "command returned $return_value\n"; } ?>
示例2
<?php $descriptorspec = [STDIN, STDOUT, STDOUT]; $cmd = '"findstr" "search" "filename.txt"'; $proc = proc_open($cmd, $descriptorspec, $pipes); proc_close($proc); ?>
示例3
$cmd = '""findstr" "search" "filename.txt""';
- 程序执行函数 proc_terminate 杀除由 proc_open 打开的进程
-
发表日期:2021-07-01 08:56:11 | 来源: | 分类:程序执行函数
-
proc_terminate
(PHP 5, PHP 7, PHP 8)
proc_terminate — 杀除由 proc_open 打开的进程
说明
proc_terminate(resource$process
, int$signal
= 15): bool向
process
(由 proc_open() 函数创建) 发送信号通知其终止。 proc_terminate() 调用之后将会立即返回, 而不会等待进程终止。可以使用 proc_terminate() 终止进程 并且继续其他的任务。 可以使用 proc_get_status() 函数来检查进程是否已经终止。
参数
-
process
-
由 proc_open() 打开的 resource。
-
signal
-
可选参数,仅用于 POSIX 操作系统。 表示调用系统命令
kill(2)
来向进程发送的信号。 默认值为SIGTERM
。
返回值
返回进程的终止状态。
更新日志
版本 说明 5.2.2 之前的版本被用来销毁进程 resource
。参见
- proc_open() - 执行一个命令,并且打开用来输入/输出的文件指针。
- proc_close() - 关闭由 proc_open 打开的进程并且返回进程退出码
- proc_get_status() - 获取由 proc_open 函数打开的进程的信息
-
- 程序执行函数 shell_exec 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。
-
发表日期:2021-07-01 08:56:11 | 来源: | 分类:程序执行函数
-
示例1
<?php $output = shell_exec('ls -lart'); echo "<pre>$output</pre>"; ?>
- 程序执行函数 system 执行外部程序,并且显示输出
-
发表日期:2021-07-01 08:56:11 | 来源: | 分类:程序执行函数
-
示例1
<?php echo '<pre>'; // 输出 shell 命令 "ls" 的返回结果// 并且将输出的最后一样内容返回到 $last_line。// 将命令的返回值保存到 $retval。$last_line = system('ls', $retval); // 打印更多信息echo '</pre><hr />Last line of the output: ' . $last_line . '<hr />Return value: ' . $retval; ?>
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)