2010-04-06 5 views
0

J'ai besoin de savoir s'il y a un moyen en PHP de répercuter une chaîne avec chaque caractère.Comment écho une chaîne avec chaque caractère en PHP?

Par exemple

/n 

et les goûts.


Modifier des éclaircissements:

Quand j'ai un formulaire en ligne et je le soumettre et j'ai ce texte:

I am stupid 
and I cannot 
explain myself 

Le texte serait comme ceci:

I am stupid /n and I cannot /n explain myself 

Si j'utilise:

nl2br 

-je obtenir:

I am stupid <br /> and I cannot <br /> explain myself 

Maintenant, je dois les utilisateurs que l'entrée des textes foiré et je dois le nettoyer et le mettre dans un tableau. J'aimerais pouvoir imprimer à l'écran tous les caractères spéciaux tels que/n.

+6

Quelques personnes ont exprimé qu'elles ne comprennent pas complètement votre question. Peut-être pourriez-vous ajouter d'autres détails. – webbiedave

+0

le bon point :) –

Répondre

3

Je pense qu'il veut dire qu'au lieu de voir un saut de ligne quand une chaîne contient '\ n', il veut voir le '\ n' comme deux caractères, un '\' et un 'n'.

json_encode fonctionne bien à cet effet:

echo json_encode("spam\nand eggs"); 
>> "spam\nand eggs" 
+0

mais il veut que d'autres personnages soient échappés. Et, je soupçonne, pas seulement des évasions de style C –

+1

En effet, il le fait. 'addcslashes' est juste une option. 'json_encode' va, je crois, retourner tout ce dont l'OP a besoin, si c'est, en fait, ce que OP recherchait. – thetaiko

+0

Ma réponse a été mise à jour pour supprimer 'addcslashes' qui fonctionne pour des listes spécifiques de caractères que vous fournissez. – thetaiko

0

En supposant que vous voulez dire ajouter \ n à chaque caractère et $string contient la chaîne que vous souhaitez modifier:

$strarray = str_split($string); 
$string = ""; 
foreach($strarray as $char) 
{ 
    $string .= $char."\n"; 
} 
echo $string; 

Après cette chaîne de $ contiendra la chaîne de $ original avec une nouvelle ligne ajoutée après chaque caractère, et sera répercuté. Pour que cela soit affiché, vous devez l'entourer de <pre>.

+0

$ i = 0; tandis que isset ($ string [$ i]) echo $ string [$ i ++]. "\ n"; Mais ce n'est pas ce qu'il a demandé :) –

Questions connexes