Foros del Web » Programando para Internet » PHP »

Problema al reemplazar comillas

Estas en el tema de Problema al reemplazar comillas en el foro de PHP en Foros del Web. Código: <?php $limpio=ereg_replace( "mierda", "caca",$HTTP_POST_VARS[mensaje]); $limpio=ereg_replace( "MIERDA", "CACA",$limpio); $limpio=ereg_replace( "coño", "vagina",$limpio); $limpio=ereg_replace( "COÑO", "VAGINA",$limpio); $limpio=ereg_replace( "puta", "prostituta",$limpio); $limpio=ereg_replace( "PUTA", "PROSTITUTA",$limpio); $limpio=ereg_replace( "\[b\]", "<b>",$limpio); $limpio=ereg_replace( "\[/b\]", ...
  #1 (permalink)  
Antiguo 17/07/2002, 14:45
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Problema al reemplazar comillas

Código:
<?php 

$limpio=ereg_replace( "mierda", "caca",$HTTP_POST_VARS[mensaje]); 
$limpio=ereg_replace( "MIERDA", "CACA",$limpio); 
$limpio=ereg_replace( "coño", "vagina",$limpio); 
$limpio=ereg_replace( "COÑO", "VAGINA",$limpio); 
$limpio=ereg_replace( "puta", "prostituta",$limpio); 
$limpio=ereg_replace( "PUTA", "PROSTITUTA",$limpio); 
$limpio=ereg_replace( "\[b\]", "<b>",$limpio); 
$limpio=ereg_replace( "\[/b\]", "</b>",$limpio); 
$limpio=ereg_replace( "\[i\]", "<i>",$limpio); 
$limpio=ereg_replace( "\[/i\]", "</i>",$limpio); 
$limpio=ereg_replace( "\[u\]", "<u>",$limpio); 
$limpio=ereg_replace( "\[/u\]", "</u>",$limpio); 
$limpio=ereg_replace( "\[citar\]", "<hr size=1 width=50% color=orange><b>Citando:</b> <font color=\"000990\" style=\"font size:8 pt\" face=\"Courier New, Arial\">",$limpio); 
$limpio=ereg_replace( "\[/citar\]", "</font><hr size=1 width=50% color=orange>",$limpio); 
$limpio=ereg_replace( '\"', '"',$limpio); 
$limpio=ereg_replace( "\'", "'",$limpio); 

?>
Tengo este código y funciona todo perfecto menos las comillas, las separo por si hay alguna duda:

Código:
$limpio=ereg_replace( ' \ " ', ' " ',$limpio); 
$limpio=ereg_replace( " \ ' ", " ' ",$limpio);
El problema es que en vez de reemplazar \" o \' por " o ', escribe \" o \' como si no reemplazara nada, o sea, que no reemplaza. Alguien sabe el problema?

<center><a href="http://www.ommadawn.es.vg" target="_top"><img src="http://www.redhispana.org/chuloyo/ommadawnbanner.gif" border="0" align="center"></a></center>
  #2 (permalink)  
Antiguo 17/07/2002, 16:38
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Re: Problema al reemplazar comillas

Sabéis algo?!!

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank">www.Ommadawn.es.vg</a><hr size="1" color="blue" width="39%">
  #3 (permalink)  
Antiguo 17/07/2002, 17:01
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Re: Problema al reemplazar comillas

hola,

asi, de memoria, creo que es:
Código:
$limpio=ereg_replace(&quot;\\\&quot;&quot;,&quot;\&quot;&quot;,$limpio); 
$limpio=ereg_replace(&quot;\\\'&quot;,&quot;\'&quot;,$limpio);
La razon es que hay que &quot;escapar&quot; (poner un \ delante) tanto \ como &quot; y '.

Espero que te funcione.


Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 17/07/2002, 17:27
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Re: Problema al reemplazar comillas

Hola, siento comunicarte que pasa lo mismo. Compruébalo tú mismo.

La página es <a href='ir.asp?http://www.redhispana.org/ommadawnnuevo/foro/index.php' target='_blank'>http://www.redhispana.org/ommadawnnuevo/...</a>

Y el código es:

&lt;?php

$limpio=ereg_replace( &quot;mierda&quot;, &quot;caca&quot;,$HTTP_POST_VARS[mensaje]);
$limpio=ereg_replace( &quot;MIERDA&quot;, &quot;CACA&quot;,$limpio);
$limpio=ereg_replace( &quot;coño&quot;, &quot;vagina&quot;,$limpio);
$limpio=ereg_replace( &quot;COÑO&quot;, &quot;VAGINA&quot;,$limpio);
$limpio=ereg_replace( &quot;puta&quot;, &quot;prostituta&quot;,$limpio);
$limpio=ereg_replace( &quot;PUTA&quot;, &quot;PROSTITUTA&quot;,$limpio);
$limpio=ereg_replace( &quot;\[b\]&quot;, &quot;&lt;b&gt;&quot;,$limpio);
$limpio=ereg_replace( &quot;\[/b\]&quot;, &quot;&lt;/b&gt;&quot;,$limpio);
$limpio=ereg_replace( &quot;\[i\]&quot;, &quot;&lt;i&gt;&quot;,$limpio);
$limpio=ereg_replace( &quot;\[/i\]&quot;, &quot;&lt;/i&gt;&quot;,$limpio);
$limpio=ereg_replace( &quot;\[u\]&quot;, &quot;&lt;u&gt;&quot;,$limpio);
$limpio=ereg_replace( &quot;\[/u\]&quot;, &quot;&lt;/u&gt;&quot;,$limpio);
$limpio=ereg_replace( &quot;\[citar\]&quot;, &quot;&lt;hr size=1 width=50% color=orange&gt;&lt;b&gt;Citando:&lt;/b&gt; &lt;font color=\&quot;000990\&quot; style=\&quot;font size:8 pt\&quot; face=\&quot;Courier New, Arial\&quot;&gt;&quot;,$limpio);
$limpio=ereg_replace( &quot;\[/citar\]&quot;, &quot;&lt;/font&gt;&lt;hr size=1 width=50% color=orange&gt;&quot;,$limpio);
$limpio=ereg_replace(&quot;\\\&quot;&quot;,&quot;\ &quot;&quot;,$limpio);
$limpio=ereg_replace(&quot;\\\'&quot;,&quot;\'&quo t;,$limpio);

$limpio = nl2br($limpio);

?&gt;

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank">www.Ommadawn.es.vg</a><hr size="1" color="blue" width="39%">
  #5 (permalink)  
Antiguo 17/07/2002, 17:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Re: Problema al reemplazar comillas

prueba a sustituir esas dos lineas por
Código:
$limpio=stripslashes($limpio);

Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 17/07/2002, 18:50
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Problema al reemplazar comillas

Hola
Chulosoy no entiendo porque queres reemplazar comillas por otras comillas
Pero en fin
creo que lo tenes que hacer es:
ereg_replace(&quot;\&quot;&quot;,&quot;\&quot;&quo t;,$limpio);
y lo mismo para las comillas simples
tenes que escapar las comillas para que PHP entienda que son parte del string...
Igual no entiendo porque haces eso
Una mas: ereg_replace tarda MUCHO pero MUCHO tiempo mas y consume mas recursos que str_replace. Para este caso que no requiere nada complicado, usa str_replace.
ereg_replace fue pensado para usarse con expresiones regulares o patterns, entonces es un comando mucho mas complicado...
Saludos ;)



<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #7 (permalink)  
Antiguo 17/07/2002, 19:16
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Re: Problema al reemplazar comillas

Hola!!!

el str_replace se utiliza igual que el ereg???

Lo de las comillas es para el código html, por ejemplo, si pongo en un campo &lt;a href=&quot;...&quot;&gt;&lt;/a&gt; escribirá con \&quot;, o si pongo simplemente &quot; me aparece en el texto &quot;.

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank">www.Ommadawn.es.vg</a><hr size="1" color="blue" width="39%">
  #8 (permalink)  
Antiguo 17/07/2002, 21:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Problema al reemplazar comillas

Una observacion ....

eregi_replace() .. no distingue entre mayusculas y minusculas ...

asi q con una linea solo te evitas hacer una para mayusculas y otra para minusculas (he incluso te será efectivo para palabras como Mierda, MIerDa .. etc ...)

UN saludo,
  #9 (permalink)  
Antiguo 17/07/2002, 23:28
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Problema al reemplazar comillas

Por cierto str_replace tampoco distingue mayusculas y minusculas (si no me equivoco) y tiene las ventajas que cite anteriormenet...
El uso si no me equivoco es el mismo que el de ereg_replace, pero busca en el manual te sacara las dudas...
Aun no entiendo para que lo usas! Es texto que ingresas vos o texto ingresado por usuarios? Donde lo queres poner?
Saludos ;)


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #10 (permalink)  
Antiguo 17/07/2002, 23:35
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Re: Problema al reemplazar comillas

vamos a ver, cualquiera que envíe por un formulario &quot; se guardará \&quot; y no &quot;. He pensado en poner &amp;quot; pero en el html necesito &quot; y no &amp;quot; . Has comprendido ahora? Por que el formulario enviará html, lo único que deshabilite el html poniendo el &amp;quot; y ponerle en ereg_replace() el código todo html, pero bueno.

Sobre eregi_replace he probado y no me funciona, no se si será del servidor o de que es una sintaxis diferente. etc.

Str_replace, alguien me explica cómo utilizarlo?

saludos y a ver si me podéis ayudar.

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank">www.Ommadawn.es.vg</a><hr size="1" color="blue" width="39%">
  #11 (permalink)  
Antiguo 18/07/2002, 07:52
Avatar de Yagorat  
Fecha de Ingreso: marzo-2002
Ubicación: Madrid
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Re: Problema al reemplazar comillas

Buenas, el problema de str_replace, es que distingue entre mayusculas y minusculas y un ejemplo de uso sería:

$limpio = str_replace(&quot;[ b ]&quot;, &quot;&lt;b&gt;&quot;, $limpio);

Buscando en los comentarios de php.net he visto una funcion de una persona que hace lo mismo que str_replace pero distingue no distingue entre mayusculas y minusculas, esta es la función y su posible uso:

&lt;?PHP

function stri_replace( $find, $replace, $string )
{
$parts = explode( strtolower($find), strtolower($string) );

$pos = 0;

foreach( $parts as $key=&gt;$part ){
$parts[ $key ] = substr($string, $pos, strlen($part));
$pos += strlen($part) + strlen($find);
}

return( join( $replace, $parts ) );
}


$limpio = $HTTP_GET_VARS[frase];

$limpio = stri_replace(&quot;[ b ]&quot;, &quot;&lt;b&gt;&quot;, $limpio);
$limpio = stri_replace(&quot;[ /b ]&quot;, &quot;&lt;/b&gt;&quot;, $limpio);
$limpio=stripslashes($limpio); // Con esto eliminas el \ de \&quot;

echo $limpio;

?&gt;

Espero que te valga, el foro te esta quedando cojonudo,y la pagina igual.

PD: He separado [ b ] para que no saliera en negrita en el foro :roto:

Un saludo a todos.

------------------------
Solo se que no se nada.
Yagorat - Webmaster sin web
  #12 (permalink)  
Antiguo 18/07/2002, 10:15
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Problema al reemplazar comillas

bueno si q distinguia las mayus
Saludos


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
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 10:58.