with una strip_tags saltos remove quitar linea etiquetas eliminar con caracteres cadena borrar php regex string

una - remove html tags php



Eliminar nuevas lĂ­neas de cadena (17)

$string = " put returns between paragraphs for linebreak add 2 spaces at end ";

Desea eliminar todas las nuevas líneas de cadena.

Tengo esta expresión regular, puede detectarlos todos, el problema es que no sé con qué función debo usarla.

//r/n|/r|/n/

$string debe convertirse en:

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";


Algunos comentarios sobre la respuesta aceptada:

El + significa "1 o más". No creo que necesites repetir. Creo que simplemente puedes escribir ''//s+/'' .

Además, si desea eliminar los espacios en blanco primero y último de la cadena, agregue trim .

Con estas modificaciones, el código sería:

$string = preg_replace(''//s+/'', '' '', trim($string));


De que trata

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

Esta debería ser una solución bastante sólida porque / n no funciona correctamente en todos los sistemas si no estoy equivocado ...


Debe usar str_replace por su velocidad y usar comillas dobles con una matriz

str_replace(array("/r/n","/r"),"",$string);


Este código a continuación funciona todo el texto, por favor utilícelo:

$des = str_replace(''/n'','' '',$des); $des = str_replace(''/r'','' '',$des);


Este es el patrón que usaría

$string = preg_replace(''@[/s]{2,}@'','' '',$string);


Este también quita pestañas

$string = preg_replace(''~[/r/n/t]+~'', '''', $text);


Los reemplazos de expresiones regulares de PCRE se pueden hacer usando preg_replace: preg_replace()

$new_string = preg_replace("//r/n|/r|/n/", '' '', $old_string);

Reemplazaría la nueva línea o devolvería los caracteres por un espacio. Si no quiere que nada los reemplace, cambie el segundo argumento a '''' .


Los saltos de línea en el texto se representan generalmente como:

/ r / n - en una computadora con Windows

/ r - en una computadora Apple

/ n - en Linux

//Removes all 3 types of line breaks $string = str_replace("/r", "", $string); $string = str_replace("/n", "", $string);


Me sorprendió ver lo poco que todos saben acerca de las expresiones regulares.

Strip newlines en php es

$str = preg_replace(''//r?/n$/'', '' '', $str);

En perl

$str =~ s//r?/n$/ /g;

El significado reemplaza cualquier carácter de nueva línea al final de la línea (por eficiencia), opcionalmente precedido por un retorno de carro, con un espacio.

/ n o / 015 es nueva línea. / r o / 012 es retorno de carro. ? en regex significa emparejar 1 o cero del caracter anterior. $ en regex significa igualar el final de la línea.

La referencia original y la mejor expresión regular es perldoc perlre, cada codificador debe conocer este documento bastante bien: http://perldoc.perl.org/perlre.html Nota: no todas las funciones son compatibles con todos los idiomas.


No estoy seguro de si esto tiene algún valor contra las respuestas ya enviadas, pero puedo publicarlo.

// Create an array with the values you want to replace $searches = array("/r", "/n", "/r/n"); // Replace the line breaks with a space str_replace($searches, "", $string); // Replace multiple spaces with one $output = preg_replace(''!/s+!'', '' '', $string);


Puede probar a continuación el código conservará cualquier espacio en blanco y nuevas líneas en su texto.

$str = " put returns between paragraphs for linebreak add 2 spaces at end "; echo preg_replace( "//r|/n/", "", $str );


Solo usa preg_replace()

$string = preg_replace(''~[/r/n]+~'', '''', $string);

Podría salirse con str_replace() en este caso, aunque el código no se ve tan limpio:

$string = str_replace(array("/n", "/r"), '''', $string);

ideone en vivo en ideone


Tienes que tener cuidado con los saltos de doble línea, lo que causaría espacios dobles. Usa esta expresión regular realmente eficiente:

$string = trim(preg_replace(''//s/s+/'', '' '', $string));

Múltiples espacios y nuevas líneas se reemplazan con un solo espacio.

Edición: como otros lo han señalado, esta solución tiene problemas para unir nuevas líneas entre palabras. Esto no está presente en el ejemplo, pero uno puede ver fácilmente cómo podría ocurrir esa situación. Una alternativa es hacer lo siguiente:

$string = trim(preg_replace(''//s+/'', '' '', $string));


Utilizar esta:

Reemplace la serie de líneas nuevas con una cadena vacía:

$string = preg_replace("/[//n//r]+/", "", $string);

o probablemente quieras reemplazar las líneas nuevas con un solo espacio:

$string = preg_replace("/[//n//r]+/", " ", $string);


tal vez esto funciona:

$str=''/n''; echo str_replace(''/n'','''',$str);


La secuencia de escape /R coincide con una nueva línea genérica

es decir, cualquier cosa considerada una secuencia de salto de línea por Unicode. Esto incluye todos los caracteres que coinciden con /v ( espacio en blanco vertical ) y la secuencia de múltiples caracteres /x0D/x0A ...

$string = preg_replace(''//R+/'', " ", $string);

En el modo no UTF-8 de 8 bits, /R es equivalente a lo siguiente: (?>/r/n|/n|/x0b|/f|/r|/x85) ... pcre.org

Demostración Regex101


$string = str_replace(array("/n", "/r"), '' '', $string);