2010-03-19 15 views
31

acabo instalado PHP 5.3.1 en mi servidor Linux y ahora mi antiguo trabajo, que yo solía escribir con etiquetas no funciona en absoluto ..<? ?> etiquetas que no trabajan en PHP 5.3.1

por favor me ayude .. ¿Cómo puedo resolver esto?

+0

[resuelto] http://php999.blogspot.in/2015/05/how-to-enable-php-short-tags.html ----- CHECK IMAGE ----- – indian

Respuesta

67

Para activar las etiquetas cortas, habilite la directiva ini short_open_tag en una de las siguientes maneras (muy probablemente no todos ellos va a trabajar para usted):

  • establece la directiva short_open_tag = On en su php.ini (la forma recomendada);
  • llame al ini_set("short_open_tag", 1); en su código;
  • añadir la siguiente línea a su archivo .htaccess:

    php_value short_open_tag 1


Más explicación:

No es recomendamos que utilice las etiquetas cortas (<? ?>). Debe usar las etiquetas de longitud completa (<?php ?>). La sintaxis corta está en desuso, y si desea que su aplicación sea portátil, es posible que las etiquetas de apertura corta no están permitidas en otro servidor y, por lo tanto, su aplicación se romperá.

Por otro lado, la abreviatura de eco es <?= $var ?>enabled by default since PHP 5.4 regardless of php.ini settings y no dejará de estar disponible. Se puede utilizar en lugar de <?php echo $var; ?>

Y para el comportamiento por defecto:

------------------------------------------------ 
php.ini values : short_open_tag 
------------------------------------------------ 

PHP 4, 5_0 
* Default behaviour : on 
* php.ini-dist  : on 
* php.ini-recommended : on 

PHP 5_1, 5_2: 
* Default behaviour : on 
* php.ini-dist  : on 
* php.ini-recommended : off 

PHP 5_3: 
* Default behaviour : on 
* php.ini-development : off 
* php.ini-production : off 

Y la razón de etiquetas de apertura cortos desalentadores:

Esta directiva determina si PHP reconocerá código entre
<? y ?> etiquetas como fuente de PHP que se debe procesar como tal. Ha sido
recomendado durante varios años que no utilice la etiqueta corta "atajo" y
en su lugar para usar la combinación de etiqueta completa <?php y ?>. Con el amplio uso de XML y el uso de estas etiquetas por otros idiomas, el servidor puede convertirse fácilmente
confundido y terminar analizando el código incorrecto en el contexto incorrecto. Pero debido a que
este atajo ha sido una característica durante tanto tiempo, actualmente sigue siendo
compatible para compatibilidad con versiones anteriores, pero le recomendamos que no las use.

Tenga en cuenta también este declinó RFC sobre las etiquetas cortas abiertas para las plantillas: http://wiki.php.net/rfc/shortags

+0

Según http : //php.net/manual/en/ini.core.php, el valor predeterminado es "1", que me parece que está habilitado. Aunque espero que también esté deshabilitado por defecto. – OregonGhost

+0

@OregonGhost: Bien descrito aquí: http: //stackoverflow.com/questions/1386620/php-echo-vs-php-short-tags * En realidad, en el archivo php.ini-production proporcionado con PHP 5.3.0, están deshabilitados por defecto * Supongo que desde 5.3 en adelante está desactivado por defecto. –

+0

@OregonGhost: tiene razón, pero casi siempre se proporciona una configuración de ejemplo que anulará los valores predeterminados incorporados y elegirá la configuración adecuada. Creo que php.ini-recommended lo desactiva (aunque no podría estar seguro sin verificarlo). –

0

tal vez su nueva configuración duerma alllow etiquetas cortas. Simplemente use <?php ?>. Es una mejor práctica de todos modos.

Si aún desea utilizarlas, puede short_open_tag directiva. También tenga en cuenta que no funcionará si tiene etiquetas cortas deshabilitadas.

La razón principal de esto es para que pueda usar etiquetas Xml en línea.

+1

No hay mucho motivo. –

+3

En realidad, si su código va a ejecutarse en otros servidores que no tiene control. Usar asegurará la portabilidad. – Sinan

+0

Esto * puede * ser un motivo. Pero para el propio juicio, no recomendación estricta. Y en realidad, la mayoría del código no está escrito para generalizarse. Y hay una gran variedad de sistemas de plantillas. Y si alguien usa PHP como un sistema de plantillas, usar etiquetas largas es simplemente ridículo. Simplemente elija otro sistema de plantillas y olvide esta pregunta en absoluto –

10

Parece que tienes short_open_tags establecido en "Off" en tu archivo php.ini. Intenta configurarlo en "On" y reinicia apache.

1

Es muy probable que deba activar las etiquetas cortas en su archivo de configuración de PHP. Sin conocer su configuración, no podría decir dónde la encontraría, pero está buscando php.ini (muy probablemente en algún lugar como /etc/php.ini).

Ahí, la configuración que busca es short_open_tags. Consulte here para conocer todos los ajustes de configuración principales para PHP. Sin embargo, como otros mencionaron, el uso de etiquetas cortas podría no ser la mejor estrategia. Here es una buena discusión de las razones (a favor y en contra).

+0

Buena discusión con motivos falsos. –

+1

@Col. Metralla: ¿Cómo es eso? Tiendo a preferir siempre etiquetas largas sobre etiquetas cortas por algunos de los motivos que allí se describen. Para ser sincero, creo que se debe, al menos parcialmente, a las preferencias personales. Mientras sea consciente de las implicaciones de cualquier manera, puede usar lo que quiera. –

+0

No estoy hablando de preferencias de codificación ahora, estoy hablando de falsos rumores. –

0

Si usa wamp o xamp, es realmente fácil activarlos. Simplemente haga clic en el ícono-> servidor php-> configuración-> permitir etiqueta corta abrir

Es mejor no usar esta funcionalidad. Por ejemplo, xml usa la misma manera para abrir el encabezado en documentos.