【问题标题】:does PHP Version 5.3.2 work without <?php woth with <?PHP 版本 5.3.2 是否可以在没有 <?php 的情况下使用 <?
【发布时间】:2024-05-22 06:05:02
【问题描述】:

我有一个完整的网站

这是用php4编写的,现在我的托管服务器是PHP版本5.3.2,windows 2008服务器

我的网站无法正常工作,我发现旧网站使用以下语法

<?

但是如果我把它改成

<?php

页面开始工作。有什么办法可以解决这个问题...

  1. PHP 版本 5.3.2 使用

    <?
    
  2. 任何改变一切的脚本

    <? to <?php 
    

在所有页面中。

【问题讨论】:

标签: php windows-server-2008


【解决方案1】:

这不取决于 PHP 版本,而是取决于 short_open_tag php.ini 设置。

您可以将 ini 设置更改为“1”,但现在通常不鼓励使用短打开标签。

【讨论】:

  • 对于那些(永远)在你控制之下的代码,大多数情况下是不鼓励的。服务器需要启用短打开标签,否则将无法正常工作。从 PHP6 开始,默认情况下标签将被 禁用。因此,如果您为一家公司构建一个项目并且您不知道他们的服务器上的设置是什么,那么最好使用默认的&lt;?php 而不要冒险。但是,当您为自己或您自己的公司构建它并且您知道您将控制它运行的服务器时,没有理由不使用它。它确实有它的优势,这取决于你的编码风格。
  • @Alec 好点。是否使用短开放标签是最激烈的讨论:) 有些人完全谴责它,有些人喜欢&lt;?=$varname;?&gt; 符号。我个人还是有很多短开标签的代码,不过争取尽快移到&lt;?php
  • @Alec,你是对的,但即使你知道你可以控制服务器配置,你也不知道多久......也许你会在其他地方被雇用,和你之后的人不知道你对 short_open_tags 的使用
【解决方案2】:

短标签是 PHP 不鼓励使用的功能。您应该将所有&lt;? 转换为&lt;?php,因为从 PHP 6.0 开始,它们将被弃用。 (这部分是为了更好地支持 XML 文档,其标签以&lt;? 开头)

顺便说一句,您可以在配置中打开它们。

【讨论】:

    【解决方案3】:

    以下代码 sn-p 帮助我将所有短标签转换为正确的 PHP 标签,希望对您也有帮助:

    【讨论】:

      【解决方案4】:

      在您的 php.ini 文件中有一个名为“short_open_tag”的指令。这就是允许您使用或不使用速记的原因。不过它们不应该再使用了,所以最好将所有标签更新为新格式。

      大都会

      【讨论】:

        最近更新 更多