Foros del Web » Programando para Internet » PHP »

Sustituir cadena

Estas en el tema de Sustituir cadena en el foro de PHP en Foros del Web. Buenas a ver os explico: Si pongo esto: $mensaje = preg_replace("#((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)#ie", " Censurado ", $mensaje); detecta http://www.google.com Pero no detecta si pongo www.google.com Alguien sabe ...
  #1 (permalink)  
Antiguo 01/03/2012, 16:37
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 0
Sustituir cadena

Buenas a ver os explico:

Si pongo esto:
$mensaje = preg_replace("#((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)#ie", " Censurado ", $mensaje);

detecta http://www.google.com

Pero no detecta si pongo www.google.com

Alguien sabe la cadena para detectar las direcciones sin http

(La gente es perra por naturaleza y nadie escribira el http XDXD


Gracias
  #2 (permalink)  
Antiguo 01/03/2012, 17:13
Avatar de AeroSilver  
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 12 años, 5 meses
Puntos: 15
Respuesta: Sustituir cadena

Cita:
Iniciado por 256megas Ver Mensaje
Buenas a ver os explico:

Si pongo esto:
$mensaje = preg_replace("#((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)#ie", " Censurado ", $mensaje);

detecta http://www.google.com

Pero no detecta si pongo www.google.com

Alguien sabe la cadena para detectar las direcciones sin http

(La gente es perra por naturaleza y nadie escribira el http XDXD


Gracias
Lo que podés hacer es escribir directamente en el formulario
<input type='text' value='http://'>

cosa que automáticamente empiezen a escribir http://

Sino en el archivo php podés validarlo a través de:

Código PHP:
$campo $_POST['campo'];
$validar substr_count($campo'http://');

if(
$validar == 1)
{
  echo 
"escribio bien.";
}
else
{
  echo 
"no escribio bien.";

  #3 (permalink)  
Antiguo 02/03/2012, 02:33
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Sustituir cadena

Gracias pero lo que quiero es todo lo contrario lo que tienen que meter en el text es:


Blablablabla wwww.google.com blablablabla y yo con php censurar ese www.google.com

Gracias de todas formas ^^
  #4 (permalink)  
Antiguo 02/03/2012, 07:40
Avatar de AeroSilver  
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 12 años, 5 meses
Puntos: 15
Respuesta: Sustituir cadena

lo que podés usar para eso:

Código PHP:
Ver original
  1. $campo = $_POST['campo'];
  2. $validar = substr_count($campo, 'http://');
  3.  
  4. if($validar == 1)
  5. {
  6.   $campo = str_replace('http://', '', $campo);
  7. }
  8. else
  9. {
  10.   $campo = $campo;
  11. }  
  12.  
  13. echo $campo;
  #5 (permalink)  
Antiguo 02/03/2012, 08:24
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Sustituir cadena

NO AEROSILVER, el busca otra cosa.

Tienes que construir tu expresión regular.

En un cambio sencillo pero como aqui no puedo copiar y pegar entonces no te puedo reescribir tu expresion regular...


Pero debes colocar un w{3}| en donde te indico con negrita :

etc...://( w{3}| \S*?etc...

Y la final de la cadena terminas con un i, para no hacer distinción entre mayúsculas y minúsculas.

Aaa eso ya lo tienes, pues nada. Saludos
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #6 (permalink)  
Antiguo 03/03/2012, 06:08
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Sustituir cadena

Eres la leche ^^ Gracias a los dos

Etiquetas: sustituir, cadenas
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 06:05.