msg_receive
(PHP 4 >= 4.3.0, PHP 5)
msg_receive — Reçoit un message depuis une file de messages
Description
$queue
, int $desiredmsgtype
, int &$msgtype
, int $maxsize
, mixed &$message
[, bool $unserialize
= true
[, int $flags
= 0
[, int &$errorcode
]]] )
msg_receive() reçoit le premier message de la
file queue
, le type est spécifié par
desiredmsgtype
.
Liste de paramètres
-
queue
-
-
desiredmsgtype
-
Si
desiredmsgtype
vaut 0, le premier message de la file est retourné. Sidesiredmsgtype
vaut plus que 0, alors le premier message de ce type sera retourné. Sidesiredmsgtype
vaut moins que 0, le premier message de la file ayant un type inférieur ou égal à la valeur absolue dedesiredmsgtype
sera retourné. Si aucun message ne correspond aux critères, votre script attendra la venue d'un tel message dans la file. Vous pouvez éviter ce blocage en précisant l'optionMSG_IPC_NOWAIT
dans le paramètreflags
. -
msgtype
-
Le type de message qui a été reçu sera stocké dans ce paramètre.
-
maxsize
-
La taille maximale de message est fixée par
maxsize
; si le message de la file est plus grand que cette taille, la fonction échouera (à moins que vous n'utilisiez une optionflags
, décrite ci-dessous). -
message
-
Le message reçu sera stocké dans le paramètre
message
, à moins qu'il n'y ait eu des erreurs de réception du message. -
unserialize
-
Quand c'est le cas, le message est traité comme s'il avait été linéarisé avec le même mécanisme que le module de session. Le message sera alors délinéarisé, puis retourné au script. Cela vous permettra de recevoir facilement des tableaux ou des objets complexes dans votre script, émis par d'autres scripts PHP, ou, si vous utilisez WDDX, depuis n'importe quelle source compatible WDDX.
Si
unserialize
vautFALSE
, le message sera retourné intact, et sans modifier les valeurs binaires. -
flags
-
Le paramètre
flags
permet de passer des options pour configurer les appels msgrcv. Par défaut, il vaut 0, mais vous pouvez spécifier une ou plusieurs options en les combinant avec l'opérateur OR).Options de la fonction msg_receive() MSG_IPC_NOWAIT
S'il n'y a pas de message du type desiredmsgtype
, retourne immédiatement et n'attend pas. La fonction échouera et retournera un entier correspondant àMSG_ENOMSG
.MSG_EXCEPT
En utilisant cette option en combinaison avec un type desiredmsgtype
supérieur à 0, la fonction va lire le premier message qui n'est pas du type demandé pardesiredmsgtype
.MSG_NOERROR
Si le message est plus grand que maxsize
, cette option va tronquer le message à la taille demaxsize
et ne signalera pas d'erreur. -
errorcode
-
Si la fonction échoue, le paramètre optionnel
errorcode
sera défini à la valeur de la variable système errno.
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Lors de la réception réussie d'un message, la file est mise à jour comme ceci : msg_lrpid prend la valeur de l'identifiant de processus du processus appelant, msg_qnum est décrémenté de 1 et msg_rtime prend la date et l'heure courante.
Voir aussi
- msg_remove_queue() - Détruit une file de messages
- msg_send() - Envoie un message dans une file
- msg_stat_queue() - Retourne des informations sur la file de messages
- msg_set_queue() - Modifie des informations dans la file de messages