PHP 8.3.0 RC 6 available for testing

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

User Contributed Notes 4 notes

up
1
michael dot hajuu at gmail dot com
12 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
5 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
13 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
11 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