程序执行函数 业 ,精于勤 荒于嬉.

程序执行函数 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 挂起,直至程序执行结束。

参见

阅读全文 »

程序执行函数 proc_close 关闭由 proc_open() 打开的进程并且返回进程退出码

发表日期:2021-07-01 08:56:10 | 来源: | 分类:程序执行函数

proc_close

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

proc_close关闭由 proc_open() 打开的进程并且返回进程退出码

说明

proc_close(resource $process): int

proc_close()pclose() 函数类似, 只是 proc_close() 只能用来关闭由 proc_open() 函数打开的进程。 proc_close() 函数会等待进程终止, 并且返回进程的返回值。 如果有连接到进程的已经打开的管道, 那么需要在调用此函数之前调用 fclose() 函数来关闭管道, 否则会引发死锁 - 在管道处于打开状态时,子进程将不能退出。

参数

process

要关闭的由 proc_open() 打开的 resource

返回值

返回进程的终止状态码。 如果发生错误,将返回 -1

注意:

如果 PHP 是通过 --enable-sigchild 编译的,此函数将没有返回值。

阅读全文 »

程序执行函数 proc_get_status 获取由 proc_open() 函数打开的进程的信息

发表日期:2021-07-01 08:56:11 | 来源: | 分类:程序执行函数

proc_get_status

(PHP 5, PHP 7, PHP 8)

proc_get_status获取由 proc_open() 函数打开的进程的信息

说明

proc_get_status(resource $process): array

proc_get_status() 函数可以获取由 proc_open() 函数打开的进程的信息。

参数

process

要检查的由 proc_open() 打开的进程 resource

返回值

如果调用成功,则返回一个包含了进程信息的 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 进程的退出码(仅在 runningfalse 时有意义)。 仅在第一次调用此函数时会返回实际的值, 后续的调用将返回 -1
termsig int 导致子进程终止执行的信号值 (仅在 signaledtrue 时有意义)。
stopsig int 导致子进程停止执行的信号值 (仅在 stoppedtrue 时有意义)。

参见

  • proc_open() - 执行一个命令,并且打开用来输入/输出的文件指针。

阅读全文 »

程序执行函数 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;
?>

阅读全文 »

全部博文(1580)
集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。