web-dev-qa-db-fra.com

comment supprimer les nouvelles lignes et les retours d'une chaîne php?

Une variable php contient la chaîne suivante:

<p>text</p>
<p>text2</p>
<ul>
<li>item1</li>
<li>item2</li>
</ul>

Je veux supprimer tous les nouveaux caractères de ligne de cette chaîne pour que la chaîne ressemble à ceci:

<p>text</p><p>text2><ul><li>item1</li><li>item2</li></ul>

J'ai essayé ce qui suit sans succès:

str_replace('\n', '', $str);
str_replace('\r', '', $str);
str_replace('\r\n\', '', $str);

Quelqu'un sait comment résoudre ce problème?

35
Yens

Vous devez placer le \n entre guillemets.
Dans les guillemets simples, il est traité comme 2 caractères '\' suivi de 'n'

Vous avez besoin:

$str = str_replace("\n", '', $str);

Une meilleure alternative consiste à utiliser PHP_EOL en tant que:

$str = str_replace(PHP_EOL, '', $str);
86
codaddict

Vous devez insérer \n ou \r dans "" et non pas ''. Lors de l'utilisation de guillemets simples, les séquences d'échappement ne seront pas interprétées (à l'exception de \' et \\).

Le manuel indique :

Si la chaîne est placée entre guillemets ("), PHP interprétera Plus de séquences d'échappement pour les caractères spéciaux: 

  • \ n saut de ligne (LF ou 0x0A (10) en ASCII) 

  • \ r retour chariot (CR ou 0x0D (13) en ASCII) \

  • (...)

15
kapa

Quelque chose d'un peu plus fonctionnel (facile à utiliser n'importe où):

function replace_carriage_return($replace, $string)
{
    return str_replace(array("\n\r", "\n", "\r"), $replace, $string);
}

Utiliser PHP_EOL comme paramètre de remplacement de recherche est aussi une bonne idée! Gloire.

7
tfont

Cela devrait être comme

 str_replace ("\ n", '', $ str); 
 str_replace ("\ r", '', $ str); .__ str_replace ("\ r\n", '', $ str); 
4
Asif Mulla

Pour supprimer les nouvelles lignes de la chaîne, suivez le code ci-dessous

$newstring = preg_replace("/[\n\r]/","",$subject); 
4
saravanavelu

Sortie correcte:

'{"data":[{"id":"1","reason":"hello\\nworld"},{"id":"2","reason":"it\\nworks"}]}'

function json_entities( $data = null )
{           
    //stripslashes
    return str_replace( '\n',"\\"."\\n",
        htmlentities(
            utf8_encode( json_encode( $data)  ) , 
            ENT_QUOTES | ENT_IGNORE, 'UTF-8' 
        )
    );
}
1
Jonathan
$no_newlines = str_replace("\r", '', str_replace("\n", '', $str_with_newlines));
0
Collin Anderson

Remplacer une chaîne:

$str = str_replace("\n", '', $str);

u utilisant également comme, (% n, % t, Tous les caractères spéciaux, chiffres, caractères, etc.)

ce qui signifie que tout ce que vous pouvez remplacer dans une chaîne.

0
Alagu Sundar