PHP Function Reference

PHP sapi_windows_generate_ctrl_event() Function



The PHP sapi_windows_generate_ctrl_event() function is used to send a CTRL event to another process in the same process group.

Syntax

sapi_windows_generate_ctrl_event(event, pid)

Parameters

event Required. Specify the CTRL event to send - either PHP_WINDOWS_EVENT_CTRL_C or PHP_WINDOWS_EVENT_CTRL_BREAK.
pid Optional. Specify the ID of the process to which to send the event to. Default is 0 which means the event is sent to all processes of the process group.

Return Value

Returns true on success or false on failure.

Example: basic sapi_windows_generate_ctrl_event() usage

The example below shows how to pass along CTRL+BREAK events to a child process. In this case the child process echoes "Hello World!" every second, until the user presses CTRL+BREAK, what causes only the child process to be terminated.

<?php
//forwarding CTRL+BREAK events to the child process
sapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event');

//creating a child process which echoes every second
$cmd = ['php', '-r', 'while (true) { echo "Hello World!\n"; sleep(1); }'];
$descspec = array(['pipe', 'r'], ['pipe', 'w'], ['pipe', 'w']);
$options = ['create_process_group' => true];
$proc = proc_open($cmd, $descspec, $pipes, null, null, $options);
while (true) {
  echo fgets($pipes[1]);
}
?>

❮ PHP Miscellaneous Reference