【问题标题】:php source code whitespacephp源代码空格
【发布时间】:2009-11-17 08:31:47
【问题描述】:

我熟悉 Javascript 中的缩小概念以及空格对 JS 文件大小的影响,但该概念不适用于 PHP 脚本吗?

空格会使 php 脚本文件变大吗?我们可以缩小 php 脚本吗?或者这样做没有意义,因为 php 源代码中的空格根本不影响任何东西?

【问题讨论】:

    标签: php


    【解决方案1】:

    这样做没有意义,因为用户不会下载您的 PHP 文件。无需缩小服务器端脚本。

    【讨论】:

    • 话虽如此,您不希望每个页面请求中都包含 1 MiB 大小的脚本。这确实会影响性能。但是,是的,“缩小”实际上并没有帮助:-)
    • 我不知道这是否真的是一个很大的性能提升,但minification 可能会提高解析的性能。但是,如果您采用这种方式,最好使用像 APC 这样的字节码缓存工具
    【解决方案2】:

    如果您优化了 PHP 文件中的空白(读入和编译文件),速度会有小幅提升,但与其他文件相比,它微不足道 strong>(也就是说,您可以使用适当的字符串方法更多地重写所有不必要的 'preg_replace')。

    实际上,有可能预编译一个 PHP 文件并将优化后的代码呈现给 PHP 解释器。搜索 Zend 编码器或 IonCube。但是,源文件不再可读

    对于 JS 文件,速度的提升几乎 100% 来自于较小的通过 HTTP 的加载时间

    【讨论】:

      【解决方案3】:

      从 PHP 脚本中删除空格并没有真正的性能优势。解释器只是忽略它。

      如果你真的想删除它,运行

      php -w foo.php > foo_small.php
      

      将删除空格和 cmets。

      对最终用户(假设是网络环境)的性能产生影响的是输出的大小。正常的事情是使用压缩 - 查看设置zlib.output_compression=TRUE 或者ob_gzhandler

      【讨论】:

        【解决方案4】:

        将以下内容保存到文件test.php

        <?php
            //Hello I'm comment
            echo "Some code";
                                      # There are spaces on the beginning of the line
        
        
            if (isset($_GET['a'])){
              var_dump($_GET['a']);
            } else {
              /*
                Some other comment
              */
              die('oooops');
            }
        

        运行 $ php -w test.php 它将显示带有剥离 cmets 和空白的源代码

        <?php
        echo "Some code"; if (isset($_GET['a'])){ var_dump($_GET['a']); } else { die('oooops'); }
        

        无论如何,您应该使用字节码缓存库来加速您的代码。删除空格是低效的方法。

        【讨论】:

          【解决方案5】:

          如果您的 php 程序也包含 html 代码,您可能希望它缩小它,但我不建议这样做,因为现在您必须保留同一个文件的两份副本,一份用于开发,以便您可以理解和一个用于服务器。最好使用其他替代方法来提高速度,如果绝对需要,请使用这种方式。

          【讨论】:

          • 压缩 HTML 输出的推荐方法是输出缓冲结合自动缩小步骤和可能的缓存。恕我直言,这几乎不值得麻烦,因为您所能做的就是去掉一些空白,希望无论如何这都是源代码中可以忽略的部分。
          • 实际上,只是压缩这些东西效率更高。
          • 是否需要专用服务器,因为简单的 php 托管站点不会有这样的东西。如上所述,我不推荐输出缓冲方法,也不推荐从 php 源文件中去除空格。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-22
          • 2020-02-09
          • 1970-01-01
          • 1970-01-01
          • 2012-01-13
          相关资源
          最近更新 更多