str_replace - substr php
Para quitar espacios en blanco dentro de una variable en PHP (10)
Algunas veces necesitaría eliminar espacios en blanco consecutivos. Puedes hacerlo así:
$str = "My name is";
$str = preg_replace(''//s/s+/'', '' '', $str);
Salida:
My name is
¿Cómo se puede quitar espacios en blanco en la variable de PHP?
Sé este comment PHP.net. Me gustaría tener una herramienta similar como tr
para PHP para que pueda ejecutar simplemente
tr -d " " ""
Corro sin éxito la función php_strip_whitespace
por
$tags_trimmed = php_strip_whitespace($tags);
También ejecuto la función de expresión regular sin éxito
$tags_trimmed = preg_replace(" ", "", $tags);
Cualquier opción posible es usar un contenedor de archivos personalizado para simular variables como archivos. Puedes lograrlo usando esto:
1) Antes que nada, registre su contenedor (solo una vez en el archivo, úselo como session_start ()):
stream_wrapper_register(''var'', VarWrapper);
2) Luego defina su clase contenedora (se escribe muy rápido, no completamente correcta, 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 envoltorio en el protocolo var: // (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 alcance global (como global $ __ myVar)
Es una publicación anterior, pero se puede hacer así:
if(!function_exists(''strim'')) :
function strim($str,$charlist=" ",$option=0){
$return='''';
if(is_string($str))
{
// Translate HTML entities
$return = str_replace(" "," ",$str);
$return = strtr($return, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)));
// Choose trim option
switch($option)
{
// Strip whitespace (and other characters) from the begin and end of string
default:
case 0:
$return = trim($return,$charlist);
break;
// Strip whitespace (and other characters) from the begin of string
case 1:
$return = ltrim($return,$charlist);
break;
// Strip whitespace (and other characters) from the end of string
case 2:
$return = rtrim($return,$charlist);
break;
}
}
return $return;
}
endif;
Las funciones de ajuste estándar () pueden ser problemáticas cuando vienen entidades HTML. Es por eso que escribí la función "Super Trim" que se usa para manejar este problema y también puedes elegir recortar desde el principio, el final o el lado del stand de la cuerda.
Para quitar cualquier espacio en blanco, puede usar una expresión regular
$str=preg_replace(''//s+/'', '''', $str);
Vea también esta respuesta para algo que puede manejar espacios en blanco en cadenas UTF-8.
Puede utilizar la función de recorte de php para recortar ambos lados (izquierda y derecha)
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
Puedes hacerlo usando ereg_replace
$str = ''This Is New Method Ever'';
$newstr = ereg_replace([[:space:]])+'', '''', trim($str)):
echo $newstr
// Result - ThisIsNewMethodEver
Si desea eliminar todos los espacios en blanco de todas partes desde $ etiquetas, por qué no solo:
str_replace('' '', '''', $tags);
Si quieres eliminar nuevas líneas, necesitarás un poco más ...
Una expresión regular no tiene en cuenta los caracteres UTF-8 de forma predeterminada. El meta-personaje de s solo cuenta para el conjunto de latin original. Por lo tanto, el siguiente comando solo elimina pestañas, espacios, retornos de carro y nuevas líneas
// http://.com/a/1279798/54964
$str=preg_replace(''//s+/'', '''', $str);
Con UTF-8 convirtiéndose en mainstream, esta expresión fallará / se detendrá con mayor frecuencia cuando alcance los nuevos caracteres utf-8, dejando espacios en blanco detrás de los cuales los /s
no pueden dar cuenta.
Para tratar con los nuevos tipos de espacios en blanco presentados en Unicode / UTF-8, se requiere una cadena más extensa para unir y eliminar el espacio en blanco moderno.
Debido a que las expresiones regulares de forma predeterminada no reconocen caracteres de múltiples bytes, solo se puede utilizar una meta cadena delimitada para identificarlos, para evitar que los segmentos de bytes se alteren en otros caracteres de utf-8 ( /x80
en el conjunto de quad podría reemplazar a todos /x80
sub-bytes en comillas inteligentes)
$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 representa y elimina las pestañas, nuevas líneas, pestañas verticales, alimentaciones, retornos de carro, espacios y adicionalmente desde here :
nextline, espacios de no separación, separador de vocales mongol, [en quad, em quad, en space, em space, espacio de tres por em, espacio de cuatro por em, espacio de six-per-em, espacio de figura, espacio de puntuación , espacio fino, espacio para el pelo, espacio de ancho cero, no unificador de ancho cero, separador de líneas, separador de párrafos, espacio estrecho de no corte, espacio matemático medio, separador de palabras, espacio ideográfico y el ancho cero no- rompiendo el espacio
Muchos de estos causan estragos en archivos xml cuando se exportan de herramientas automatizadas o sitios que contaminan búsquedas de texto, reconocimiento y pueden pegarse de manera invisible en el código fuente de PHP, lo que hace que el analizador pase al siguiente comando (separadores de párrafo y línea) que causa líneas del código que debe omitirse, lo que da como resultado errores intermitentes e inexplicables que hemos comenzado a llamar "enfermedades de transmisión textual"
[Ya no es seguro copiar y pegar desde la web. Use un escáner de caracteres para proteger su código. lol]
también usas la función preg_replace_callback
. y esta función es idéntica a su hermano preg_replace
excepto que puede tomar una función de devolución de llamada que le da más control sobre cómo manipula su salida.
$str = "this is a string";
echo preg_replace_callback(
''//s+/'',
function ($matches) {
return "";
},
$str
);
$string = str_replace(" ", "", $string);
Creo que preg_replace buscaría algo como [:space:]