PHP CLI ne pas utiliser stderr pour les erreurs de sortie
Je suis l'exécution du PHP CLI par un NSTask dans MacOS, mais cette question est plus sur la CLI lui-même.
Je suis à l'écoute des stderr
pipe, mais rien n'est sortie de n'importe quel fichier j'essaie de le lancer:
- Si le type de fichier n'est pas un texte brut,
stdout
ensembles de?
. - Si le fichier est un script php avec des erreurs, les messages d'erreur sont encore imprimés à
stdout
.
Est-il passer à l'interprète pour la gestion des erreurs par le biais de stderr
? Puis-je avoir une option pour détecter les erreurs autres que l'analyse stdout
?
OriginalL'auteur Petruza | 2011-06-22
Vous devez vous connecter pour publier un commentaire.
La
display_errors
de la directive (peut être placé partout) prend éventuellement le paramètre "stderr
" pour signaler les erreurs à stderr au lieu de stdout ou complètement désactivé la sortie d'erreur. Citant le manuel PHP entrée:Sinon, si vous utilisez l'interface de ligne de commande et que vous voulez à la sortie d'erreurs de votre propre, vous pouvez ré-utiliser le en ligne de commande entree/sortie flux:
Ici
STDERR
est déjà ouvert des flux de stderr.Sinon, si vous voulez le faire juste pour ce script et pas dans l'interface de ligne vous pouvez ouvrir un dépôt gestionnaire de
php://stderr
et écrire les messages d'erreur.OriginalL'auteur mhitza
Si vous souhaitez que les messages d'erreur envoyés par php doit aller à la
stderr
-pipe, vous devez définirdisplay_errors
àstderr
OriginalL'auteur KingCrunch
Cela est nécessaire pour le retour à partir de PHP royaume dans l'environnement de shell afin d'analyser correctement le message d'erreur. Vous avez encore besoin de la sortie(1) ou n'importe quel nombre entier afin de retourner statut de sortie de code à partir de PHP shell.
Ensuite, votre crontab entrée sera de la forme:
OriginalL'auteur stamster
Vous pouvez également utiliser file_put_contents() avec "php://stderr" pour la sortie d'erreur standard, comme:
les sorties qui "Hiya, PHP!\n" erreur standard et rien sur la sortie standard lorsqu'il est exécuté dans un shell Bash.
OriginalL'auteur Mark Leighton Fisher