| ||||
| Problemas con reemplazos en una expresión regular Tengo un problema con un reemplazo de acentos. Primero armé una pequeña función para aplicar la sustitución que necesito:
Código php:
Ver originalCopiar Luego hice esta otra función para reemplazar caracteres con un atajo pero no me funciona:
Código php:
Ver originalCopiar El resultado es que anula todo el preg_replace y me devuelve el atajo tal como está escrito, por ejemplo "[c=A]", cuando lo que debería aparecer es algo como esto (suponiendo que esté la letra "Ñ"):
Código html:
Ver originalCopiar ¿Cómo le hago?.
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) |
| ||||
| Respuesta: Problemas con reemplazos en una expresión regular mmm... la funcion a ejecutar con preg_replace() debe ser evaluada, osea... literal, pero debes usar el modificador de evaluación (e) http://www.forosdelweb.com/f18/aport...ml#post2670913 revisa el manual, o bien, usa preg_replace_callback(), para utilizar un funcion mas cómodamente... Código PHP:
__________________ http://is.gd/leeme |
| ||||
| Respuesta: Problemas con reemplazos en una expresión regular
__________________ http://is.gd/leeme |
| ||||
| Respuesta: Problemas con reemplazos en una expresión regular Gracias por las respuestas. Estuve probando con preg_replace_callback y el error me pide un "argumento 2": Código HTML: Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, '<span class="letra-$1">$1</span>', to be a valid callback in /var/www/meta/functions.php on line 58 Cita: No tienes idea desde hace cuánto lo tengo atornillado en la frente
Iniciado por pateketrueke revisa el manual .
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) |
| ||||
| Respuesta: Problemas con reemplazos en una expresión regular no quiero ser ofensivo, tu lo sabes... pero el manual es muy claro Cita: incluso el mensaje de error es aun mas aclarador, el segundo argumento debe ser un callback valido (mira el ejemplo anterior que coloque)
Iniciado por http://php.net/preg_replace_callback mixed preg_replace_callback ( mixed $pattern , callback $callback , mixed $subject [, int $limit= -1 [, int &$count ]] )
__________________ http://is.gd/leeme |
| ||||
| Respuesta: Problemas con reemplazos en una expresión regular A ver. El ejemplo que pusiste:
Código php:
Ver originalCopiar ¿No será así, teniendo en cuenta la función que escribiste más arriba?:
Código php:
Ver originalCopiar Eso fue lo mismo que hice, pero no sé cómo encajar el "$1" en ese 2do argumento y aplicarle la función de los acentos. Bueno, ya saldrá. Gracias por todo.
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) |
| ||||
| Respuesta: Problemas con reemplazos en una expresión regular jeje, tus dos código son idénticos... mira este ejemplo completo Código PHP:
__________________ http://is.gd/leeme |
| ||||
| Respuesta: Problemas con reemplazos en una expresión regular Ah carajo! Imagínate, cuándo se me iba a ocurrir esa vaina jeje. Estaba en las nebulosas. ![]() Entonces hay que crear una tercera función que prepare a la de los acentos para introducirla en el argumento. Hermano, ni se me había pasado por la cabeza. Gracias mil por el empujón. Mierda y lo peor es que estuvo frente a las narices todo el tiempo. Lo que no pude descifrar fue lo de esa nueva función. Cita: Sí, el primero era con "foo". Vainas del copypaste =P
Iniciado por pateketrueke jeje, tus dos código son idénticos...
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) |
| ||||
| Respuesta: Problemas con reemplazos en una expresión regular Lo logré!!! ... Lo logré!!! . Home run!!! Gooollll!!! ![]() Me costó medio cojón pero al fin salió. En serio gente, qué difícil se me hizo entender cómo funcionaba. Miré docenas de ejemplos, me grabé el manual de memoria y aún no lo lograba. Esta madrugada me levanté insistiendo de nuevo y a esta hora es que vengo acertando. Dejo el código aquí para la posteridad :La función de los reemplazos quedó exactamente igual que al principio.
Código php:
Ver originalCopiar Creé una variable para la expresión regular, aunque creo que también funcionaría con datos estáticos:
Código php:
Ver originalCopiar La función para reemplazar el atajo por la etiqueta HTML. Aquí metí toda la etiqueta de cabo a rabo y le apliqué la función sin_acentos() de una vez a la zona que me interesaba sustituir. Es decir, lo que aprendí es que el argumento del preg_replace_callback debe estar limpio, y todo lo que se vaya a ejecutar se ejecuta afuera:
Código php:
Ver originalCopiar Finalmente el preg_replace_callback:
Código php:
Ver originalCopiar Bueno así ha terminado este lío. Gracias de nuevo pateketrueke por proporcionarme la orientación básica sin llegar a darme la papita pelada .
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) |
Este tema le ha gustado a 1 personas