Movatterモバイル変換


[0]ホーム

URL:


PHP 8.5.0 Alpha 2 available for testing
    sapi_windows_set_ctrl_handler »
    « sapi_windows_cp_set

    sapi_windows_generate_ctrl_event

    (PHP 7 >= 7.4.0, PHP 8)

    sapi_windows_generate_ctrl_eventSend a CTRL event to another process

    Description

    sapi_windows_generate_ctrl_event(int$event,int$pid = 0):bool

    Sends a CTRL event to another process in the same process group.

    Parameters

    event

    TheCTRL event to send; eitherPHP_WINDOWS_EVENT_CTRL_C orPHP_WINDOWS_EVENT_CTRL_BREAK.

    pid

    The ID of the process to which to send the event to. If0 is given, the event is sent to all processes of the process group.

    Return Values

    Returnstrue on success orfalse on failure.

    Examples

    Example #1 Basicsapi_windows_generate_ctrl_event() Usage

    This example shows how to pass alongCTRL+BREAK events to a child process. In this case the child process echoesI'm still alive every second, until the user pressesCTRL+BREAK, what causes only the child process to be terminated.

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

    // create a child process which echoes every second
    $cmd= ['php','-r','while (true) { echo "I\'m still alive\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]);
    }
    ?>

    See Also

    Found A Problem?

    Learn How To Improve This PageSubmit a Pull RequestReport a Bug
    add a note

    User Contributed Notes1 note

    Michael Q
    4 years ago
    This function may produce a Warning:

    sapi_windows_set_ctrl_handler(): CTRL events trapping is only supported on console in script.php..

    It happens when script is started by "php-cgi.exe", so "php.exe -q" should be used instead.

    While pressing CTRL+C don't expect the handler to run instantly, i've ran some curl request in a loop and found that handler runs when either response arrives or request finishes by timeout.
    add a note
    To Top
    and to navigate •Enter to select •Esc to close
    PressEnter without selection to search using Google

    [8]ページ先頭

    ©2009-2025 Movatter.jp