Foros del Web » Programando para Internet » PHP »

funcion similar a str_replace

Estas en el tema de funcion similar a str_replace en el foro de PHP en Foros del Web. Hola a todos.. aca el pato... tengo una duda gigante, medio tonta como todo lo que pregunto, pero igual es duda: Al usar la funcion ...
  #1 (permalink)  
Antiguo 05/06/2006, 17:23
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
funcion similar a str_replace

Hola a todos.. aca el pato...

tengo una duda gigante, medio tonta como todo lo que pregunto, pero igual es duda:

Al usar la funcion de str_replace se sustituyen los caracteres pero .. mmm mejor les pongo lo que pasa por que ya estoy medio tarado.... hoy no ha sido un buen dia.... :(

aqui les va:

$inst = array('inp','inper')
$insttrad = array ('Instituto Nacional de Pediatría', 'Instituto Nacional de Perinatología')
str_replace ($inst, $instrad, $cadena);

pues como podrán imaginarlo, si llego a escribir inper, me lo traduce asi:

"Instituto Nacional de Pediatríaer" por que sustituye el inp que ve y deja el er.

existe alguna funcion que reemplaze la cadena completa y no la parte de la cadena????

saludos de este pato, que hoy, tiene una nube negra en su cabeza... snif snif...
  #2 (permalink)  
Antiguo 05/06/2006, 17:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
hola tu problema es que tus variables de reemplazo son similares:
inp
inper

usando str_replace php busca todas las instancias de inp, y las reemplaza por Instituto Nacional de Pediatria, luego busca todas las instancias de inper y lo reemplaza, pero como ya reemplazo todos los inp, ya no encuentra ningun inper, lo que yo te recomiendo es que tus variables de reemplazo sean mas unicas, algo asi como:

.inp.
.inper.

asi PHP no se confunde al reemplazar :) saludos!
  #3 (permalink)  
Antiguo 05/06/2006, 17:37
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
changos... es que alli es donde tuerce el rabo la puerca por que es un formulario donde se le pide al usuario que ingrese su institutcion, y lo que se busca es que si escriben solo las siglas sean sustituidas por su respectiva... tons, realmente el pex es que el usuario es quien pone inp o inper....
  #4 (permalink)  
Antiguo 05/06/2006, 17:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
Pues si solo es un campo de texto lo puedes hacer por campo p.e.

Código PHP:
$input $_POST['campo'];
$abbr = array( "inp""inper" );
$completo = array ('Instituto Nacional de Pediatría''Instituto Nacional de Perinatología');
$i 0;
foreach( 
$abbr as $institucion ) {
    if( 
strpos$input$institucion ) !== false )
           
$input str_replace$instiucion$completo[$i], $input );
    
    
$i++;

  #5 (permalink)  
Antiguo 05/06/2006, 18:46
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 13 años
Puntos: 7
Podrías usar expresiones regulares:
Código PHP:
$inst = array ('#\binp\b#i''#\binper\b#i');
$insttrad = array ('Instituto Nacional de Pediatría''Instituto Nacional de Perinatología');

$cadena preg_replace ($inst$insttrad$cadena); 
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #6 (permalink)  
Antiguo 06/06/2006, 16:41
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
Magnifica idea esa de las expresiones regulares... aunque no se bien que sea, jejejeje, pero las estudiare mas a fondo...

GRacias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:40.