![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
19/08/2009, 07:59
|
| | Fecha de Ingreso: mayo-2009
Mensajes: 210
Antigüedad: 15 años, 8 meses Puntos: 0 | |
Respuesta: Problema con la funcion preg_replace_callback Cita:
Iniciado por Oli_ar De esta manera, no me van los plurales:
/(\B|\b)'.$termino.'(?:|s|es)(\B|\b)/i
Quitando (\B|\b) de los 2 lados, lo cambia pero deja igual la s fuera del enlace.
las unicas formas para que me vaya la s dentro del enlace es la siguiente;
'/(\b|\B)'.$termino.'(?:|s|es)\b/i' o tambien '/'.$termino.'(?:|s|es)\b/i'
pero asi, vuelvo a lo mismo con lo de los acentos
Para probar tengo estes 2 ejemplos:
ejemplo 1: ( ahi no van los plurales)
Código:
$cadena_inicial="Caí del tejados";
$termino1="Caí";
$termino2="tejado";
$cadena_inicial = preg_replace_callback('/(\b|\B)'.$termino1.'(?:|s|es)(\b|\B)/i','remplace', $cadena_inicial);
$cadena_inicial = preg_replace_callback('/(\b|\B)'.$termino2.'(?:|s|es)(\b|\B)/i','remplace', $cadena_inicial);
ejemplo 2: (ahi van los plurales pero no van las que acaban acentuadas)
Código:
$cadena_inicial="Caí del tejados";
$termino1="Caí";
$termino2="tejado";
$cadena_inicial = preg_replace_callback('/(\b|\B)'.$termino1.'(?:|s|es)\b/i','remplace', $cadena_inicial);
$cadena_inicial = preg_replace_callback('/(\b|\B)'.$termino2.'(?:|s|es)\b/i','remplace', $cadena_inicial);
Asi a todo voy a estudiar el enlace que me pasaste. La verdad que el tema este es bantante complejo. ahh vos querias la s dentro del enlace!! yo pensaba q no
entonces saca el signo afuera, así (:|s|es)? |