2010-03-19 72 views
31

我只是在我的Linux服務器,現在我的,我使用的標籤寫舊的工作不工作在所有安裝了PHP 5.3.1 ..<? ?>標籤不能在PHP 5.3.1

請幫我.. 我該如何解決這個問題?

+0

[已解決] http://php999.blogspot.in/2015/05/how-to-enable-php-short-tags.html -----檢查圖片----- – indian 2015-07-14 05:19:31

回答

67

要啓用短標籤,在下列方式之一啓用short_open_tag INI指令(最有可能不是所有的人都會爲你工作):

  • 設定的指令short_open_tag = On在你的php.ini(推薦方式);
  • 在您的代碼中調用ini_set("short_open_tag", 1);;
  • 以下行添加到您的.htaccess文件:

    php_value short_open_tag 1


更多的解釋:

它不建議您使用短標記<? ?>)。您應該使用全長標籤(<?php ?>)。簡短的語法已被棄用,如果你想讓你的應用程序可移植,它可能是在另一個服務器上不允許使用短打開標記,因此你的應用程序將會中斷。

另一方面,,迴音速記<?= $var ?>enabled by default since PHP 5.4 regardless of php.ini settings,不會被棄用。您可以使用<?php echo $var; ?>

和默認行爲,它來代替:

------------------------------------------------ 
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 

而令人沮喪的短開放標籤的原因:

這個指令決定PHP是否會承認之間的代碼
<??>標籤作爲PHP源代碼,應該像這樣處理。它已經
推薦了好幾年,你沒有使用短標籤「捷徑」和
而不是使用完整<?php?>標籤組合。隨着XML的廣泛使用 以及其他語言對這些標記的使用,服務器可能變得很容易混淆並最終在錯誤的上下文中解析錯誤的代碼。但是由於
這個捷徑已經是這麼長時間的功能了,它目前仍然支持向後兼容的
,但我們建議您不要使用它們。也

注意這個拒絕RFC約短開放標籤模板:http://wiki.php.net/rfc/shortags

+0

根據http ://php.net/manual/en/ini.core.php,默認是「1」,這聽起來像是啓用了。不過,我預計它也會在默認情況下被禁用。 – OregonGhost 2010-03-19 09:19:50

+0

@OregonGhost:這裏描述的es:http://stackoverflow.com/questions/1386620/php-echo-vs-php-short-tags *實際上,在PHP 5.3.0提供的php.ini生成文件中,他們被默認禁用*我猜從5.3開始默認是關閉的。 – 2010-03-19 09:21:53

+0

@OregonGhost:你是​​正確的,但幾乎總是提供一個示例配置,它將覆蓋內置的默認值並選擇適當的設置。我相信php.ini推薦將它們設置爲關閉(儘管未經檢查無法確定)。 – 2010-03-19 09:22:15

0

也許你的新配置犯規alllow短標籤。只需使用<?php ?>即可。無論如何,這是更好的做法。

如果你仍然想使用它們,你可以short_open_tag指令。另外請記住,如果您禁用了短標籤,則不起作用。

這樣做的主要原因是您可以使用內聯Xml標籤。

+1

沒什麼理由。 – 2010-03-19 09:29:05

+3

其實如果你的代碼要在你沒有控制權的其他服務器上運行。使用將確保可移植性。 – Sinan 2010-03-19 09:39:18

+0

這*可以是一個原因。但是,對於自己的判斷,並不是嚴格的推薦。實際上,大部分代碼並不是爲了普及而編寫的。並且有多種模板系統可供選擇。如果有人使用PHP作爲模板系統,使用長標籤是荒謬的。只需選擇另一個模板系統,並根本忘記這個問題 – 2010-03-19 10:02:01

10

看起來你在你的php.ini文件中將short_open_tags設置爲「Off」。 嘗試將其設置爲「On」並重新啓動apache。

1

您很可能需要在您的PHP配置文件中打開短標籤。不知道你的配置,我不能說你在哪裏找到它,但你正在尋找php.ini(最有可能的地方像/etc/php.ini)。

在那裏,您之後的設置是short_open_tags。有關PHP的所有核心配置設置,請參見here。但正如其他人所提到的那樣,使用短標籤可能不是最好的策略。 Here是一個很好的討論原因(贊成和反對)。

+0

良好的討論與虛假的原因。 – 2010-03-19 09:26:02

+1

@Col。彈片:怎麼樣?由於某些原因,我總是傾向於使用短標籤上的長標籤。說實話,我認爲它至少部分歸結於個人偏好。只要你意識到這種影響,你可以使用你想要的。 – 2010-03-19 09:35:13

+0

我現在不是在談論編碼偏好,我正在談論虛假的謠言。 – 2010-03-19 09:38:16

0

如果使用wamp或xamp,啓動它們真的很容易。 只需點擊圖標 - > php服務器 - >設置 - >允許短標籤打開

最好不要使用此功能。例如,xml使用相同的方式在文檔中打開標題。