msg_queue_exists

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

msg_queue_existsVérifie si une file de messages existe

Description

msg_queue_exists(int $key): bool

Vérifie si la file de messages représenté par la clé key existe.

Liste de paramètres

key

La clé de la file.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

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