Caractère PHP "backspace" lors de la sortie possible?
J'ai le sentiment que la réponse est "c'est pas possible", mais j'ai pensé demander à satisfaire ma curiosité.
J'ai un code qui est fait l'écho où le \n est inévitable:
echo "Hello \n";
echo "World!";
J'aimerais que la ligne de simplement lire (dans le code de sortie):
Bonjour Tout Le Monde!
... donc enlever le \n.
Donc je me demandais si il est possible d'exécuter un "retour arrière" de caractère au cours de PHP est sortie?
Quelque chose de simple comme str_replace( "\n", 'backspace-character', $str );
source d'informationauteur Jeff
Vous devez vous connecter pour publier un commentaire.
Oui, le caractère de retour arrière est le caractère ASCII de code à 8 (Selon le Table ASCII), de sorte que vous pouvez générer en php à l'aide de chr(). par exemple:
sera sortie "a"
Si l'objectif de production est le HTML alors des espaces supplémentaires n'ont pas d'importance - les navigateurs ne pas rendre de multiples espaces contigus (c'est pourquoi nous avons
)Si l'objectif de production est quelque chose d'autre, alors vous pouvez simplement le nettoyage de la sortie. Comme vous pouvez le voir dans d'autres réponses, il y a une multitude de façons de le faire. Il semble que vous travaillez avec de l'écho des déclarations de sorte que le sortie-mise en mémoire tampon fonctions seront de la route que vous voulez prendre.
Si vous voulez être en mesure de le faire pour rien, vous pouvez utiliser le tampon de sortie:
Vous pourriez même utiliser httaccess pour ajouter des scripts contenant ce à n'importe quel script appelé.
Cependant, ne pourrait-on pas simplement traiter avec elle avant qu'il est réglé sur la sortie standard? Comme
Ce n'est pas une réponse directe à sa question exacte, mais à ce que le titre semble faire allusion à l': la sortie d'un PHP "backspace" caractèrece qui est probablement utile uniquement lors de l'utilisation de la CLI PHP.
Vous pouvez trouver le code ASCII pour cela (et d'autres caractères) sur le Table ASCIIpuis chr() ou une séquence d'échappement:
Ce sujet juste de remplacer le "
\n
" par un espace blanc (ou rien du tout, si vous avez déjà un espace en entrant string) ?Comme ceci, par exemple :
La première sortie donne :
Et la seconde :
Est-ce pas suffisant ?
(Ou peut-être que je ne comprends pas la question)
Ne pouvez-vous pas faire comme ceci:
Maintenant
$str
aura tous les espaces ou\n
séquences de caractères remplacés par un seul espace.(parce que si vous venez de supprimer \n vous migth avoir un endroit où un espace est manquant, et si vous venez de le remplacer par un espace, vous aurez certains endroits avec plusieurs espaces à la suite).
EDIT: je ne sais pas si la boucle est vraiment nécessaire, mais je n'ai rien pour tester ici si
str_replace
va automatiquement faire l'affaire (et je ne pense pas que l'utilisation des regexp pour une chose si simple est vraiment une bonne idée).Au lieu de penser à comment faire un caractère de retour arrière, je suggère de repenser le problème. Pourquoi voulez-vous prendre un peu de votre sortie? Probablement parce que vous avez sorti trop tôt.
Au lieu de faire un echo sur la valeur intermédiaire, ajouter de la mémoire tampon. Puis éditer le tampon. Ensuite l'imprimer. Si vous ne pouvez pas contrôler si la sortie est produite ou non (par exemple, vous êtes en utilisant un fournisseur externe de la bibliothèque du qui affiche des trucs), l'utilisation de PHP tampon de sortie.
Je ne sais pas comment faire un retour arrière, mais si vous essayez juste de faire une nouvelle ligne je voudrais utiliser:
Code PHP permet code html aussi longtemps qu'il est utilisé dans une impression ou l'écho de la déclaration et de l'est à l'intérieur de guillemets doubles.