Bueno, ya hice lo que dije que iba a hacer, y en efecto, cuando traigo el código desde el servicio web se transfieren unos caracteres invisibles al ojo humano, pero un editor hexadecimal me mostró la cruda realidad: la sentencia que ejecuto yo, escrita directamente en una variable, arroja los siguientes bytes:
68656164657228276C6F636174696F6E3A202E2E2F27293B
que sería la instrucción:
Código PHP:
header('location: ../');
Y la instrucción que me arroja el servicio web, me da los siguientes bytes:
EFBBBFEFBBBF68656164657228276C6F636174696F6E3A202E2E2F27293B
(Los bytes en rojo son los que generan el bendito error.)
que sería la instrucción:
Código PHP:
//header('location: ../');
¿Ya vieron? ¡claro que la función
header() está definida!, lo que PHP dice es que la función
header() no lo está, y por eso el error.
Ahora sólo me queda el trabajo de, si no es más óptimo, editar los archivos para borrar los primeros caracteres de los archivos de código. O borrarlos antes de enviar la respuesta desde el servicio web.