msg_queue_exists

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

msg_queue_existsCheck whether a message queue exists

说明

msg_queue_exists(int $key): bool

Checks whether the message queue key exists.

参数

key

Queue key.

返回值

成功时返回 true, 或者在失败时返回 false

参见

add a note add a note

User Contributed Notes 4 notes

up
1
michael dot hajuu at gmail dot com
13 years ago
A simple script for checking what message queues are in use on a [presumably new] server environment.

Run with php-cli

<?php
$k
= 0;
while (
true) {
  echo
$key,"...\r";
  if (
msg_queue_exists($key))
   echo
"\r",$key,'::Exists',"\n";
  
$key++;
}
?>
up
1
klatovsky at 2u2 dot cz
6 years ago
This function is creating new queue (and returning true) if you set NULL into $key variable.

<?php

$isQueueCreated
= msg_queue_exists(NULL);
print
$isQueueCreated ? "WTF??!" : "ok, everything is fine..";

?>

WTF??!

# ipcs -q
0x00000000 173047808  root       0        0            0
up
0
jaredm
15 years ago
A workaround for those not yet running 5.3 on *nix:

<?php
function queue_exists($key) {
    if(
function_exists("msg_queue_exists")) {
        return
msg_queue_exists($key);
    } else {
       
$aQueues = array();
       
exec("ipcs -q | grep \"^[0-9]\" | cut -d \" \" -f 1", $aQueues);
        if(
in_array($key,$aQueues)) return true;
        else return
false;
    }
}
?>

Maybe a bit slow and kludgey, but it works.
up
-2
tkuschel at loytec dot com
12 years ago
Following code will do the job:
<?php
$key
= 0;
while (
true) {
  echo
$key,"...\r";
  if (
msg_queue_exists($key))
   echo
"\r",$key,'::Exists',"\n";
  
$key++;
}
?>
To Top