如何有选择地在HTML文件中注释掉PHP代码?

时间:2014-02-05 17:22:01

标签: php regex perl internationalization translation

我正在尝试将混合的PHP / HTML源文件准备好在OmegaT中进行翻译,这是一个Java翻译记忆库应用程序。它有一个HTML过滤器,可以很好地处理干净的HTML文件,但混合使用PHP代码时会感到困惑。

为了避免这个问题,我试图找到一个解决方案,将PHP代码放在HTML注释中(<! - - >),这样OmegaT HTML过滤器可以忽略它。

进一步的复杂性是注释只应在PHP代码位于HTML标记之间而不是使用PHP代码创建HTML标记属性时才会发生。

为了更好地说明这些要求,我想在div id = 1和id = 3的PHP代码周围添加HTML注释,但是在id = 2中。

原文:

    <body>
      <div id="1">
        <?php
          echo $var;
        ?>
      </div>
      <div id="2">
        <a href="/index.php?p=<?php echo $var; ?>" >text</a>
      </div>
      <div id="3">
        <p>Some text <?php echo $var; ?> generated partially with PHP.</p>
      </div>
    </body>

评论:

    <body>
      <div id="1">
        <!--<?php
          echo $var;
        ?>-->
      </div>
      <div id="2">
        <a href="/index.php?p=<?php echo $var; ?>" >text</a>
      </div>
      <div id="3">
        <p>Some text <!--<?php echo $var; ?>--> generated partially with PHP.</p>
      </div>
    </body>

如果我在div id = 2中注释掉PHP代码,OmegaT HTML过滤器会转换&lt;&gt;字符到HTML元素,我想避免。

我试图制作一个简单的Perl脚本,以便在需要时添加注释,但我没有提出有用的正则表达式替代解决方案。

1 个答案:

答案 0 :(得分:0)

解决整个问题的另一种替代方法:不是试图强制将文档放在翻译工具可以处理的格式中,为什么不只是解决它?将字符串与PHP代码分开,创建自己的XML文件,其中包含字符串。 OmegaT可以处理该文件。在生成网站时,使用PHP读取并解析它,而不是直接使用翻译的文件。在我眼中更清洁的解决方案......