msg_queue_exists

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

msg_queue_existsメッセージキューが存在するかどうかを調べる

説明

msg_queue_exists(int $key): bool

key で指定したメッセージキューが存在するかどうかを調べます。

パラメータ

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
14 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