2010-01-02 3 views

Répondre

35
$string = str_replace("\n", "", $string); 
$string = str_replace("\r", "", $string); 
+1

il m'a beaucoup aidé parce que – Rinzler

66
$string = str_replace(PHP_EOL, '', $string); 

ou

$string = str_replace(array("\n","\r"), '', $string); 
+3

+1 PHP_EOL attrape les nouvelles lignes \ n, que \ r \ n \ r miss. – Mark

+3

Ne fonctionne pas pour moi. Tout d'abord, que PHP_EOL n'a pas été reconnu du tout. Deuxièmement, si vous supprimez d'abord \ n et que vous recherchez \ r \ n, vous ne les trouverez pas, car \ n est déjà supprimé. – MilanG

+0

@MilanG Vous pouvez trouver ici toutes les constantes PHP prédéfinies: http://php.net/manual/fr/reserved.constants.php Vous y verrez PHP_EOL. Vous avez probablement raison au sujet de votre deuxième déclaration, je vais corriger cela. Merci – AntonioCS

11

Pour supprimer plusieurs nouvelles lignes, il est recommandé d 'utiliser une expression régulière:

$my_string = trim(preg_replace('/\s\s+/', ' ', $my_string)); 
+0

+1 pour réellement utiliser regex comme le OP a demandé – rorypicko

+0

le symbole '+' signifie 1 ou plus, vous n'avez pas besoin du premier '\ s'. –

+0

Le groupe regex de \ s n'inclut-il pas des éléments tels que des tabulations et des espaces communs, auquel cas cette réponse est grossièrement trop gourmande? – Kzqai

1

Essayez ceci Son travail pour moi

Premièrement supprimer n de chaîne (utilisez double barre oblique avant n),

Retirez ensuite r de chaîne comme n

CODE:

$string=str_replace("\\n",$string); 
$string=str_replace("\\r",$string); 
6

Mieux vaut utiliser,

$string = str_replace(array("\n","\r\n","\r"), '', $string).

Parce que certaines sauts de ligne restent tels qu'ils proviennent de l'entrée de zone de texte.

3

Quelque chose un peu plus fonctionnel (facile à utiliser partout):

function strip_carriage_returns($string) 
{ 
    return str_replace(array("\n\r", "\n", "\r"), '', $string); 
} 
Questions connexes