Foros del Web » Programando para Internet » PHP »

Problema con str_replace()

Estas en el tema de Problema con str_replace() en el foro de PHP en Foros del Web. Buenas. Tengo un texto que fue "formateado" por PHP, el cual contiene \n y \r por todos lados. Yo deseo quitarle a ese texto dichos ...
  #1 (permalink)  
Antiguo 15/05/2003, 15:14
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Problema con str_replace()

Buenas.

Tengo un texto que fue "formateado" por PHP, el cual contiene \n y \r por todos lados. Yo deseo quitarle a ese texto dichos carácteres mediante str_replace, pero simplemente los convierte a \\n o \\r. Fijense:

Código PHP:
<?php

function qsimb($var) {
    
$var str_replace("\n\r","",$var);
    return 
$var;
}

qsimb($texto);

echo <<< HTML

<form method="post" action="">
<textarea name="texto" cols="120" rows="30" wrap="VIRTUAL">$texto</textarea>
<input type="submit" name="submit">

HTML;

?>
¿Qué estoy haciendo mal?

Saludos !
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #2 (permalink)  
Antiguo 15/05/2003, 19:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si tienes problemas con dobles \ (slashes) usa stripslashes() ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 15/05/2003, 19:37
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Nada viejo...
Puse stripslashes en todos lados, y en ninguna parte del script funciona...

Sigue poniendo los dobles \.

Puse: stripslashes($texto); y nada...
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #4 (permalink)  
Antiguo 15/05/2003, 19:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm .. como aseguras que tienes saltos de línea \n\r y no \n o \r sólo ... ?¿ Yo haría esto:

Código PHP:
<?php

function qsimb($var) {
    
$var str_replace("\n","",$var);
    
$var str_replace("\r","",$var);
    
$var str_replace("\n\r","",$var);
    return 
$var;
}

$texto=stripslashes(qsimb($_POST['texto']));

echo <<< HTML

<form method="post" action="">
<textarea name="texto" cols="120" rows="30" wrap="VIRTUAL">$texto</textarea>
<input type="submit" name="submit">

HTML;

?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 15/05/2003, 19:55
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Nada...

Ahora los deja igual. Meto un \n\r y devuelve \n\r... igual pasa si los meto separados...

¿Será imposible?
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #6 (permalink)  
Antiguo 15/05/2003, 20:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. a ver

Tu estas "escribiendo" en tu <textarea> .. literalmente \n\r ? ... Sabias que eso \n y/o \r son códigos de salto de línea .. pero si los introduces en un campo de texto .. NO son interpretados como código sino como una cadena (string)? ..

Que es lo que pretendes hacer cuando pones \n\r ...? .. Esos códigos se "generarn" cuando das al "INTRO" (enter) en tu <texarea> probocando un salto de línea ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 15/05/2003, 20:56
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
No...

Yo -estoy "escribiendo" en mi <textarea> .. literalmente \n\r- y quiero quitarlos... para que me devuelva un texto limpio; pero no lo hace.

¿Qué tal?
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #8 (permalink)  
Antiguo 15/05/2003, 21:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok. ... pues como te comenté que son código .. escapalos ..

function qsimb($var) {
$var = str_replace("\\n","",$var);
$var = str_replace("\\r","",$var);
$var = str_replace("\\n\\r","",$var);
return $var;
}

(del código que te puse . usa esta función ..) .. o prueba con chr() para obtener el ASCII de ese caracter / de escape ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 15/05/2003 a las 21:24
  #9 (permalink)  
Antiguo 15/05/2003, 21:25
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Viejo... eso fue lo que me diste arriba:

Código PHP:
<?php

function qsimb($var) {
    
$var str_replace("\n","",$var);
    
$var str_replace("\r","",$var);
    
$var str_replace("\n\r","",$var);
    return 
$var;
}

$texto=stripslashes(qsimb($_POST['texto']));

echo <<< HTML

<form method="post" action="">
<textarea name="texto" cols="120" rows="30" wrap="VIRTUAL">$texto</textarea>
<input type="submit" name="submit">

HTML;

?>
Es la misma función...

AHH !!! JAJAJAJA...
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #10 (permalink)  
Antiguo 15/05/2003, 21:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
joven xD .. mira que el foro me pasó el stripslashes() cuando puse lo que edité .. Por eso ahora no lo metí con el boton "PHP" de código ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 15/05/2003, 21:28
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
JAJAJAJA... entiendo...

Ahora si funciona. Gracias Cluster !
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
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 05:25.