
Léo Léopold Hertz 준영
Yo se esto comentario PHP.net. Me gustaría tener una herramienta similar como tr
para PHP tal que puedo ejecutar simplemente
tr -d " " ""
ejecuto sin exito la funcion php_strip_whitespace
por
$tags_trimmed = php_strip_whitespace($tags);
Ejecuto la función regex también sin éxito
$tags_trimmed = preg_replace(" ", "", $tags);

pablo dixon
Desnudarse ninguna espacios en blanco, puede usar una expresión regular
$str=preg_replace('/\s+/', '', $str);
Consulte también esta respuesta para ver algo que puede manejar espacios en blanco en cadenas UTF-8.

ppostma1
Una expresión regular no tiene en cuenta los caracteres UTF-8 de forma predeterminada. los \s
meta-carácter solo representa el conjunto latino original. Por lo tanto, el siguiente comando solo elimina tabulaciones, espacios, retornos de carro y líneas nuevas
// http://stackoverflow.com/a/1279798/54964
$str=preg_replace('/\s+/', '', $str);
Con UTF-8 convirtiéndose en la corriente principal, esta expresión fallará o se detendrá con más frecuencia cuando llegue a los nuevos caracteres utf-8, dejando espacios en blanco detrás de la \s
no puede dar cuenta.
Para lidiar con los nuevos tipos de espacios en blanco introducidos en unicode/utf-8, se requiere una cadena más extensa para hacer coincidir y eliminar los espacios en blanco modernos.
Debido a que las expresiones regulares de forma predeterminada no reconocen caracteres de varios bytes, solo se puede usar una metacadena delimitada para identificarlos, para evitar que los segmentos de bytes se alteren en otros caracteres utf-8 (\x80
en el conjunto cuádruple podría reemplazar a todos \x80
sub-bytes entre comillas tipográficas)
$cleanedstr = preg_replace(
"/(\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf)+/",
"_",
$str
);
Esto tiene en cuenta y elimina tabulaciones, saltos de línea, tabulaciones verticales, saltos de página, retornos de carro, espacios y, además, de aquí:
siguiente línea, espacios de no separación, separador de vocales mongol, [en quad, em quad, en space, em space, three-per-em space, four-per-em space, six-per-em space, figure space, punctuation space, thin space, hair space, zero width space, zero width non-joiner, zero width joiner]separador de línea, separador de párrafo, espacio angosto sin interrupción, espacio matemático medio, unión de palabras, espacio ideográfico y espacio sin interrupción de ancho cero.
Muchos de estos causan estragos en los archivos xml cuando se exportan desde herramientas o sitios automatizados que dificultan las búsquedas de texto, el reconocimiento y se pueden pegar de forma invisible en el código fuente de PHP, lo que hace que el analizador saltar al siguiente comando (separadores de párrafo y línea) que hace que se salten líneas de código, lo que genera errores intermitentes e inexplicables a los que hemos comenzado a referirnos como “enfermedades transmitidas textualmente”.
[Its not safe to copy and paste from the web anymore. Use a character scanner to protect your code. lol]
A veces necesitaría eliminar espacios en blanco consecutivos. Puedes hacerlo así:
$str = "My name is";
$str = preg_replace('/\s\s+/', ' ', $str);
Producción:
My name is
$string = str_replace(" ", "", $string);
Creo que preg_replace estaría buscando algo como [:space:]

Kumar
Puede usar la función de recorte de php para recortar ambos lados (izquierdo y derecho)
trim($yourinputdata," ");
O
trim($yourinputdata);
También puedes usar
ltrim() - Removes whitespace or other predefined characters from the left side of a string
rtrim() - Removes whitespace or other predefined characters from the right side of a string
Sistema: PHP 4,5,7
Documentos: http://php.net/manual/en/function.trim.php

manzanillaCaso
Si desea eliminar todos los espacios en blanco en todas partes de $tags, ¿por qué no solo:
str_replace(' ', '', $tags);
Si desea eliminar nuevas líneas y eso requeriría un poco más …

micropro.cz
Cualquier opción posible es usar un envoltorio de archivo personalizado para simular variables como archivos. Puedes lograrlo usando esto:
1) En primer lugar, registre su contenedor (solo una vez en el archivo, utilícelo como session_start()):
stream_wrapper_register('var', VarWrapper);
2) Luego defina su clase contenedora (está escrito muy rápido, no es completamente correcto, pero funciona):
class VarWrapper {
protected $pos = 0;
protected $content;
public function stream_open($path, $mode, $options, &$opened_path) {
$varname = substr($path, 6);
global $$varname;
$this->content = $$varname;
return true;
}
public function stream_read($count) {
$s = substr($this->content, $this->pos, $count);
$this->pos += $count;
return $s;
}
public function stream_stat() {
$f = fopen(__file__, 'rb');
$a = fstat($f);
fclose($f);
if (isset($a[7])) $a[7] = strlen($this->content);
return $a;
}
}
3) Luego use cualquier función de archivo con su contenedor en el protocolo var:// (también puede usarlo para incluir, requerir, etc.):
global $__myVar;
$__myVar="Enter tags here";
$data = php_strip_whitespace('var://__myVar');
Nota: No olvide tener su variable en el ámbito global (como global $__myVar)
posible duplicado de Can’t get str_replace() para eliminar espacios en una cadena de PHP
– T.Todua
25 de marzo de 2014 a las 0:37
@taztodgmail Mira las fechas. Este es 2009 y el otro es 2013. El 2013 es un duplicado de este.
– Léo Léopold Hertz 준영
25 de marzo de 2014 a las 19:02
FYI: la bandera \s no incluye caracteres utf-8 como nbsp; ps, quads y fs codificados en utf-8 stackoverflow.com/questions/2227921/…
– ppostma1
14/10/2016 a las 15:38
¡Por supuesto! Tengo un conjunto de código que lo aborda.
– ppostma1
14/10/2016 a las 17:04
¿Por qué aparece esto en la página principal?
– Jonathan DS
21 oct 2019 a las 18:21