2010-05-14 26 views
2

J'ai un problème vraiment embarrassant: j'écris une application PHP CLI fonctionnant sur un serveur Debian. Je suis connecté au serveur via SSH, juste de la manière normale. Tout fonctionne comme d'habitude. Sauf les suivants:Application PHP CLI sur Debian: pourquoi ne puis-je pas sortir un saut de ligne?

echo "My CLI fun\n\n"; 
echo "Is this."; 

sorties sur le terminal SSH, lors de l'exécution du script PHP:

My CLI funIs this. 

Je suis vraiment perplexe que je ne l'ai jamais eu un tel problème. Le bash se comporte normalement dans tous les autres aspects. J'ai déjà essayé de sortir chr(10) et tel, même problème.

Quelqu'un at-il une idée?

+1

En note secondaire, si je redirige la sortie dans un fichier, le fichier ne contient pas les retours à la ligne. –

+0

Autre remarque: les espaces sont supprimés, l'écriture sur STDOUT donne le même problème. –

Répondre

1

Résolu. Désolée de vous avoir fait perdre votre temps. Le problème était que le script php était passé à travers un script bash qui l'appelait. Donc, pour les personnes ayant le même problème: les scripts bash semblent filtrer la sortie de façon étrange! Essayez d'appeler le script php directement.

+1

Acceptez cette réponse au lieu d'éditer "Résolu" dans le titre. –

+0

Je peux accepter ma propre réponse seulement après avoir attendu 2 jours. En attendant, "[RESOLU]" pourrait être une bonne idée. –

+0

Merci, j'avais le même problème. Passer d'un #!/Bin/bash et exécuter le fichier php à #!/Usr/bin/php5

3

Avez-vous essayé d'utiliser PHP Constante OS sensible:

echo "My CLI fun".PHP_EOL.PHP_EOL; 
echo "Is this."; 
+1

Essayé cela, n'a pas fonctionné non plus. Une autre remarque: si je fais écho à "ABC ABC", les espaces sont dénudés dans un seul espace. Je commence à me demander si un étrange filtre de sortie post-traite la sortie des scripts ...? –

0

Avez-vous essayé ...

echo "My CLI fun" . chr(13) . chr(10); 
echo "Is this"; 

..? Je sais que c'est une sorte de chose MSWindows, mais cela fonctionne sur Ubuntu.

+0

Merci. La chose est maintenant résolue - c'était un problème de script bash. Désolé de gaspiller votre effort ... –