代码之家  ›  专栏  ›  技术社区  ›  nohat

转义文字<?PHP和<?在PHP脚本中

  •  6
  • nohat  · 技术社区  · 15 年前

    我正在使用php将php.ini模板化。我有一个脚本,通过使用cli-php脚本从模板生成httpd.conf、apachetl和php.ini来设置开发环境。不幸的是,字面上 <? <?php php.ini中的字符串(在注释中)。是否有可能以某种方式对它们进行转义,以便PHP不会将它们解释为普通的PHP转义序列?

    目前我的解决方法是将它们包装在一个真正的PHP转义序列中,该序列将它们作为字符串输出,如下所示:

    ; This directive determines whether or not PHP will recognize code between
    ; <?php echo "<? and ?>" ?> tags as PHP source which should be processed as such. It's been
    ; recommended for several years that you not use the short tag "short cut" and
    ; instead to use the full <?php echo "<?php and ?>" ?> tag combination. With the wide spread use
    ;
    
    3 回复  |  直到 7 年前
        1
  •  10
  •   gahooa    15 年前

    这是:

    <?php echo "<?php"; ?>
    

    意志产出:

    <?php
    
        2
  •  1
  •   Gall Annonim    7 年前

    你可以把整个INI包在这里Doc如下

    <?php 
    echo <<< EOF
    <?php echo "stuff inside php tag"; ?>
    EOF;
    ?>
    

    当输出不在页面中呈现但出现在页面源中时,
    或者您可以对标签使用HTML编码

    &lt;?php echo 'this'; ?&gt;
    

    我想晚点比较适合你。
    如果这不起作用,你可以使用我不太了解的ASCII编码。

        3
  •  0
  •   Ben Rowe    15 年前

    快速简单的解决方案是搜索php.ini并用唯一标记替换注释中的所有内容,在分析文件后,只需将这些唯一标记替换回相应的php标记即可。