No se puede desactivar short_open_tag con ini_set

Estoy incorporando un resaltador de syntax de JavaScript a un script PHP que lee el archivo de origen y lo recupera. El resaltador js tiene esta cadena en una línea:

... [z,/^[^<?]+/], ...

El short_open_tag está activado en este servidor y el <? en la cadena confunde el script y causa errores. No puedo apagar en php.ini o en otro lugar.

He usado ini_set('short_open_tag', '0'); en el mismo script, pero no tiene efecto. ¿Cual podría ser el problema?

Editar

Al final, utilicé lo que Col Shrapnel sugirió en un comentario:
Cambié [z,/^[^<?]+/], [z,/^[^<?php echo ']+/], [z,/^[^<?php echo ']+/],

‘short_open_tag’ está marcado como PHP_INI_PERDIR en PHP <5.3.0, lo que significa que no puede cambiarlo con ini_set ().

Según un comentario en esta página del manual :

libkhorse en gmail punto com 06-ago-2009 07:14:

Para ‘short_open_tag’, aunque está marcado como PHP_INI_ALL en la columna cambiante, debe tener en cuenta la columna CHANGE_LOG también:

PHP_INI_ALL en PHP <= 4.0.0. PHP_INI_PERDIR en PHP <5.3.0

Entonces, a partir de 4.0, no funcionará si quieres usar ini_set (‘short_open_tag’) para cambiar su valor sobre la marcha.

Intenta usar .htaccess lugar:

 php_flag short_open_tag off 

No veo conexión entre tu resaltador y desactivar las tags cortas.

Si parte de su código se confunde con tags cortas, debe volver a escribir su código manualmente , reemplazando las tags cortas por largas. O al menos ejecute un código para hacerlo.
Pero ninguna configuración lo hará por usted.

Además, no veo forma de que el código JavaScript pueda leer el origen del archivo PHP con todas estas tags cortas o largas.

Parece que tu problema está en otro lado.