Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con preg_replace

Estas en el tema de Problema con preg_replace en el foro de PHP en Foros del Web. Hola a todos tengo el siguiente codigo de pruebas que quiero implementar en un script: Código PHP: <?php $utfstring = "DDAS|@#~½¬{[]}\~¿?=)(/&%\$·\"!'€MKSDADSM" ; echo  utf8_encode ( ...
  #1 (permalink)  
Antiguo 05/07/2016, 12:51
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 10 años, 3 meses
Puntos: 1
Problema con preg_replace

Hola a todos tengo el siguiente codigo de pruebas que quiero implementar en un script:
Código PHP:
<?php
$utfstring
="DDAS|@#~½¬{[]}\~¿?=)(/&%\$·\"!'€MKSDADSM";
echo 
utf8_encode(preg_replace('/[^a-zA-Z0-9-_áéíóúèáìòùñçäëïöüâêîôû:.]/'''$utfstring));

?>
Mi problema es que no substituye ¬ por nada, lo pone sin mas.

Ya que estoy aqui le hago otra consulta el objectivo de este codigo es que el usuario (mas tarde substituire $utfstring por una variable post) no pueda insertar otros caracteres que no sea un texto con sus respectivos acentos y tambien guiones: -_y:. .¿Funcionara? o pasara con algun caracter mas lo que me esta pasando con ¬.

Gracias de antemano
  #2 (permalink)  
Antiguo 05/07/2016, 16:29
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Exclamación Respuesta: Problema con preg_replace

Hola Jonyjdv,

la solución es meterle el modificador o flag u a tu expresión regular, de este modo las cadenas seran tratadas como UTF-8.

Te vuelvo a copiar tu código pero ahora con el flag u agregado.

Código PHP:
$utfstring="DDAS|@#~½¬{[]}\~¿?=)(/&%\$·\"!'€MKSDADSM";
echo 
utf8_encode(preg_replace('/[^a-zA-Z0-9-_áéíóúèáìòùñçäëïöüâêîôû:.]/u'''$utfstring)); 
Fijate que va al final de la expresion regular...

/[^a-zA-Z0-9-_áéíóúèáìòùñçäëïöüâêîôû:.]/u

Mas informacion...

http://php.net/manual/en/reference.p....modifiers.php


Un saludo.
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 06/07/2016, 04:24
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Problema con preg_replace

Cita:
Iniciado por Synkronice Ver Mensaje
Hola Jonyjdv,

la solución es meterle el modificador o flag u a tu expresión regular, de este modo las cadenas seran tratadas como UTF-8.

Te vuelvo a copiar tu código pero ahora con el flag u agregado.

Código PHP:
$utfstring="DDAS|@#~½¬{[]}\~¿?=)(/&%\$·\"!'€MKSDADSM";
echo 
utf8_encode(preg_replace('/[^a-zA-Z0-9-_áéíóúèáìòùñçäëïöüâêîôû:.]/u'''$utfstring)); 
Fijate que va al final de la expresion regular...

/[^a-zA-Z0-9-_áéíóúèáìòùñçäëïöüâêîôû:.]/u

Mas informacion...

http://php.net/manual/en/reference.p....modifiers.php


Un saludo.
Funciona a la perfección, muchisimas gracias era justo lo que buscaba.

Un saludo
  #4 (permalink)  
Antiguo 06/07/2016, 06:42
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: Problema con preg_replace

Hola jonyjdv,

Me alegro mucho de que lo hayas podido resolver, no olvides marcar el tema como "Solucionado" para que si viene alguien con el mismo problema, sepa que aquí encontrará la solución.
  #5 (permalink)  
Antiguo 06/07/2016, 11:36
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Problema con preg_replace

Cita:
Iniciado por rbczgz Ver Mensaje
Hola jonyjdv,

Me alegro mucho de que lo hayas podido resolver, no olvides marcar el tema como "Solucionado" para que si viene alguien con el mismo problema, sepa que aquí encontrará la solución.
Si, normalmente lo hago disculpa se me olvido jeje

Etiquetas: variable
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 12:58.