Re: [PHP-ES] str_replace y $_POST

[email protected] (hahmael)
Newsgroups php.general.es
Message-ID <[email protected]>
"Al que no le gusta el caldo se le dan dos tazas"..pero como a mi si me
gusta y sobre todo PHP todas sus respuestas me han servido y algunas cosas
nuevas para mi que estoy mirando.

Muchas gracias a todos, ya esta solucionado.

Gracias!

2010/7/30 Juan Manuel Acuña Barrera <[email protected]>

>
> El 30/07/2010, a las 17:31, José Yepes escribió:
>
> > A mi se me ocurren dos formas:
> >
> > 1 - Usa un ciclo foreach, recorriendo el array $quitar, para buscar cada
> uno
> > de estos caracteres y quitarlo
> >
> > EJEMPLO
> >
> > $fragmento = $_POST["dir"];
> >
> > foreach($quitar as $noValido)
> > {
> > if(strpos($fragmento, $noValido) !== FALSE)
> > {
> > $fragmento = str_replace($noValido, "", $fragmento);
> > }
> > }
> >
> > O la segunda, que te evita el uso de ciclos: usa strtr(), ya que hace
> > reemplazos
> > en base a un arreglo de reemplazos que le mandes. Para esto harías una
> > modificacion a tu arreglo, como la mostraré a continuación;
> >
> > $quitar= array("-"=>"", " "=>"", "'"=>"", "?"=>"", "+"=>"", "-"=>"",
> > "_"=>"",
> > "^"=>"", "*"=>"", "!"=>"", "%"=>"", "¿"=>"", "¡"=>"", "¨"=>"","´"=>"",
> > "ç"=>"",
> > "{"=>"", "}"=>"", ":"=>"", "."=>"", ";"=>"", "("=>"", ")"=>"", "#"=>"",
> > "|"=>"", "&"=>"",
> > "$"=>"", "="=>"", "<"=>"", ">"=>""); //caracteres a Eliminar
> >
> > Con esto, la funcion strtr() usa los indices del arreglo de reemplazo
> como
> > los
> > caracteres a buscar, y los valores del arreglo como los reemplazos que
> > quieras
> > hacer ;) sólo restaría hacer esto:
> >
> > $fragmento = $_POST["dir"];
> >
> > $fragmento = strtr($fragmento, $quitar);
> >
> >
> >
> > Espero que esto resuelva tu problema. Un gran saludo para tí.
> >
> >
> >
> >
> > El 30 de julio de 2010 16:42, hahmael <[email protected]> escribió:
> >
> >> Hola a todos recibo por post una serie de numero a veces con caracteres
> que
> >> no deseo, estoy tratando de utilizar str_replace para reemplazar esos
> >> caracteres o eliminarlos antes de hacer la insercion a la BD pero hasta
> el
> >> momento mis intentos han sido infructuosos, me gustaria alguien me diga
> si
> >> estoy cometiendo un error, ejemplo de codigo:
> >>
> >>
> >> #########  Recibo por POST la siguiente cadena -->   44"#B 8    <---  y
> >> solo
> >> deseo dejar letras y numeros
> >>
> >> ######### Hago array con caracteres a reemplazar
> >>
> >> $quitar= array("-", " ", "'", "?", "+", "-", "_", "^", "*", "!", "%",
> "¿",
> >> "¡", "¨","´", "ç", "{", "}", ":", ".", ";", "(", ")", "#", "|", "&",
> "$",
> >> "=", "<", ">"); //caracteres a Eliminar
> >>
> >>
> >> ######### Finalmente trato de hacer el reemplazo buscando obtener esto
> --->
> >> 44B8  <--- pero no lo Logro!
> >>
> >> $fragmento= str_replace( $quitar, "", $_POST['dir'] );
> >>
> >> devuelve -----> 44"#B 8
> >>
> >>
> >> existe alguna otra alternativa?, que estoy realizando mal?, deseo
> eliminar
> >> en una sola funcion espacios y caracteres no Numericos o Alfabeticos.
> >>
> >> De antemano Gracias.
> >>
> >> --
> >> Agradecido.
> >>
> >> Hahmael Tâher.
> >>
> >
> >
> >
> > --
> > "No te esfuerzes tanto. Las mejores cosas de la vida suceden cuando menos
> te
> > las esperas!!"
>
>
> Hola Hahmael:
>
> A ver, revisando tu código original encontré que te falta incluir en el
> arreglo "\"" para que te quite las comillas, poniendo eso y ordenando el
> arreglo, me funciona perfecto.
>
>        $cadena='44"#B 8';
>        echo "cadena: $cadena <br>";
>        $quitar= array("-",
>                                   " ",
>                                   "'",
>                                   "?",
>                                   "+",
>                                   "-",
>                                   "_",
>                                   "^",
>                                   "*",
>                                   "!",
>                                   "%",
>                                   "¿",
>                                   "¡",
>                                   "¨",
>                                   "´",
>                                   "ç",
>                                   "{",
>                                   "}",
>                                   ":",
>                                   ".",
>                                   ";",
>                                   "(",
>                                   ")",
>                                   "#",
>                                   "|",
>                                   "&",
>                                   "$",
>                                   "=",
>                                   "<",
>                                   ">",
>                                   "\"");
>        $fragmento= str_replace( $quitar, "", $cadena );
>        echo "fragmento: $fragmento <br>";
>
> Si quieres prueba lo anterior y nos dices.
>
> Saludos!
>
> Juan Manuel Acuña
>
>
>
> --
> PHP Spanish Localization Talk Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


-- 
Agradecido.

Hahmael Tâher.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.