Hola,
Bueno. Yo tengo ese problema ahora mismo en Loturak. Sería interesante que alguien pudiera arrojar algo de luz sobre este tema, puesto que lo tengo, ciertamente, un poco abandonado, sin duda, porque mientras se está en una cosa no puede estarse en la otra.
Empero, no creas que no me preocupé de buscar alguna solución. Y, de hecho, si lo dejé un poco de lado es porque llegué a algo un tanto extraño... me explico. Las páginas de Loturak suelen validar (nos preocupamos de ello y revisamos que esto es así regularmente) y no lo hacen, por el problema que dices, únicamente algunas páginas.
Verás. En algunas páginas en donde se "imprimen" URLs como la que mencionas utlizamos algo así previamente:
Código PHP:
$urlEnlace = str_replace('&', ' & # 3 8 ;', $datosEnlace->enlace_url);
Y... funciona. ¿Cómo? ¿No he dicho arriba que no funciona? He dicho que ocurre algo que yo no he conseguido aún sino catalogar de "raro" (por desconocimiento, como suele pasar), y es que funciona en algunos sitios, pero, no en otros... funciona o, por mejor decir, funciona en todos los sitios, excepto en las páginas de Loturak que "listan" enlaces.
Son las URLs de algunos enlaces los que "rompen" la validación del código, no es código de la propia Loturak, sino que son las URLs de los enlaces que se añaden a la aplicación por los usuarios de la aplicación. Pues bien, aunque se sigue el mismo proceso:
Código PHP:
$urlEnlace = str_replace('&', ' & # 3 8 ;', $datosEnlace->enlace_url);
Lo cierto es que, como digo, en las páginas donde se "listan" los enlaces no parece surtir efecto. Hemos mirado, remirado, probado y comprobado, pero, aún no encontramos una solución apropiada. Tal vez ahora sea el tiempo.
PD. Ojo, he separado la entidad HTML con la que sustituimos el "ampersand" de la URL porque de lo contrario no saldría como queremos en el mensaje, o sea aquí, sino que saldría el propio "ampersand" que representa dicha entidad HTML. Si vas a probarlo quita los espacios a & # 3 8 ;