选项卡/缩进在Windows服务器上阻止代码

时间:2011-04-12 16:00:25

标签: php windows

我有以下代码,它在我的本地xampp和测试linux虚拟主机上工作得很好:

<?php
// include config file
include('config.php');

// get page intel
$_PAGE = switchPage($_GET);

// require language file
require_once("languages/".$_PAGE['language'].".lang.php");

// include header file
include('includes/header.inc.php');
?>

            <section id="main" class="clearfix">

                <?php
                // include correct page
                include($_PAGE['include_path']);
                ?>

            </section>

<?php
// include footer file
include('includes/footer.inc.php');
?>

我的客户端安装了一个安装了PHP 5.2.6的Windows服务器。托管公司声称,在下面的snipet中使用的标签/缩进代码不适用于Windows php托管。

            <?php
            // include correct page
            include($_PAGE['include_path']);
            ?>

所以他们声称我的代码不是有效的PHP代码..有人可以建议吗?我不想仅仅因为我用来保持代码清洁和可读的所有缩进来重写我的代码。

3 个答案:

答案 0 :(得分:1)

  

所以他们声称我的代码不是有效的PHP代码..有人可以建议吗?

一方面,他们充满了它。这是有效的代码。

另一方面,代码可能有问题 - 如果那是文件开头的开始<?php标记。这是臭名昭着的“无法发送标头,已发送的标头”错误的第2个原因,PHP可以生成错误。在打开PHP标记之前,每个PHP文件都不应该具有任何空格。

该标记位于文档的中间,因此是一个问题。

答案 1 :(得分:0)

如果使用制表符或空格,则没有区别。这仍然是有效的PHP。

答案 2 :(得分:0)

也许正在发生的事情是你用换行符结束每一行(这是linux使用的)而不是回车+换行符(窗口)。

如果忽略新的行字符,那么文件中的所有代码都会在一行上结束,从而导致各种问题(例如,页面中间的'// hello'等评论最终将注释掉所有随后的代码。)

尝试将文件转换为Windows格式(CR + LF)。你可以使用像Notepad ++这样的优秀文本编辑器来完成它。

和其他人一样,如何缩进代码并不重要。