2012-01-05 16 views
12

Estoy tratando de hacer una sustitución de PHP como ASP Reemplazar. La función solo devuelve un valor en blanco, sin embargo?PHP Reemplazar y minúsculas

$zonename=mysql_real_escape_string($_POST["zonename"]); 
    $zname_clean =""; # blank string 
    $zname_clean = $zonename; # fill string with the post form 
    $zname_clean = str_replace($zname_clean, " ", ""); # remove white space 

Ese es mi código. El ejemplo Zonename sería "Encabezado izquierdo", quiero eliminar mayúsculas y también eliminar espacios en blanco.

¿Cómo puedo eliminar el espacio en blanco y convertir la carcasa y también hay una forma más limpia de hacerlo?

+4

orden de parámetros incorrecto -> http://php.net/manual/en/function.str-replace.php – ManseUK

+0

Gracias para que @ManseUK – TheBlackBenzKid

Respuesta

34
// strip out all whitespace 
$zname_clean = preg_replace('/\s*/', '', $zname_clean); 
// convert the string to all lowercase 
$zname_clean = strtolower($zname_clean); 

Consulte el manual de PHP para strtolower() y preg_replace().

+0

Me gusta este código. – TheBlackBenzKid

+0

La expresión regular aquí es incorrecta. Debería ser/\ s?/- El asterisco indica "coincidir cero o más veces", lo que se necesita es que el signo de interrogación coincida "una o más veces". – pimbrouwers

+0

No, la expresión regular está bien. Quiero eliminar todos los espacios en blanco según la pregunta, no solo el primer chat dejando más valores de espacio en blanco. – Treffynnon

5

Tiene sus parámetros en el orden incorrecto. Echar un vistazo a esto: http://php.net/manual/en/function.str-replace.php

Cabe str_replace(" ", "", $zname_clean);

Otra forma de hacer esto es strtolower(trim($zname_clean));

+1

no estoy seguro de su "Otra forma": recorte no eliminará el espacio en blanco del medio de la cadena – ManseUK

+0

Su código no eliminará todos los espacios en blanco. ¿Qué pasa con los retornos de línea, etc. – Treffynnon

+0

Espacio en blanco (espacio sin significado) o todos los espacios? – OptimusCrime

5

probar esto.

$zonename=mysql_real_escape_string($_POST["zonename"]); 
$zname_clean = strtolower(str_replace(" ", "",$zonename)); 
Cuestiones relacionadas