Hola pateketrueke
Gracias por responder y siento que yo haya tardado tanto... u_U
Es cierto lo que me comentas de las rutas pero eso fue un fallo mio al escribirlo :S lo comprobé y no era ese el problema. Me mire el codigo que me pusiste ya que si que vi que el codigo mio era un poco redundante.
Finalmente hoy he sacado cual era el problema. Los strings en base64 que se generan rondan minimo los 10000 caracteres (en mi caso) y en el php.ini tenia puesto el limite a 4096 a la hora de recuperar el string de base de datos. Al modificar el php.ini asunto solucionado.
Pongo aqui que líneas cambié por si a alguien le puede ir bien.
Cita: ANTES
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096
AHORA
; Valid range 0 - 2147483647. Default = 4096.
mssql.textlimit = 2147483647
; Valid range 0 - 2147483647. Default = 4096.
mssql.textsize = 2147483647
Un saludo y repite que muchas gracias por el tiempo dedicado en mi problema :D