msg_queue_exists
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
msg_queue_exists — Check whether a message queue exists
说明
msg_queue_exists(int
$key
): bool
Checks whether the message queue key
exists.
参数
-
key
-
Queue key.
返回值
成功时返回 true
, 或者在失败时返回 false
。
参见
- msg_remove_queue() - Destroy a message queue
- msg_receive() - Receive a message from a message queue
- msg_stat_queue() - Returns information from the message queue data structure

User Contributed Notes 4 notes
michael dot hajuu at gmail dot com ¶
11 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++;
}
?>
klatovsky at 2u2 dot cz ¶
3 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
jaredm ¶
12 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.
tkuschel at loytec dot com ¶
9 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++;
}
?>
备份地址:http://www.lvesu.com/blog/php/function.msg-queue-exists.php