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

如何有选择地注释HTML文件中的PHP代码?,php,regex,perl,internationalization,translation,Php,Regex,Perl,Internationalization,Translation,我正在尝试使混合的PHP/HTML源文件为翻译做好准备,其中是一个Java翻译内存应用程序。它有一个HTML过滤器,可以很好地处理干净的HTML文件,但当混合使用PHP代码时,它会变得混乱 为了避免这个问题,我试图提出一个解决方案,将PHP代码放入HTML注释()中,这样OmegaT HTML过滤器就可以忽略它 更复杂的是,注释只应在PHP代码位于HTML标记之间时发生,而不应在PHP代码用于创建HTML标记属性时发生 为了更好地说明需求,我想在divid=1和id=3中的PHP代码周围添加HT

我正在尝试使混合的PHP/HTML源文件为翻译做好准备,其中是一个Java翻译内存应用程序。它有一个HTML过滤器,可以很好地处理干净的HTML文件,但当混合使用PHP代码时,它会变得混乱

为了避免这个问题,我试图提出一个解决方案,将PHP代码放入HTML注释()中,这样OmegaT HTML过滤器就可以忽略它

更复杂的是,注释只应在PHP代码位于HTML标记之间时发生,而不应在PHP代码用于创建HTML标记属性时发生

为了更好地说明需求,我想在divid=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>

部分文本是用PHP生成的

评论:

    <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>

部分文本是用PHP生成的

如果我注释掉div id=2中的PHP代码,OmegaT HTML过滤器会将字符转换为我希望避免的HTML元素


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

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

应该搜索#>()我已经重做了这些示例,以便更清楚地说明我想做什么@约翰尼斯。您的正则表达式似乎只在PHP代码严格介于>Yepp之间时才起作用,因为您的所有ExMaple都是这样。但你可以用它作为基础。不过我会再看一次,但现在很忙,需要一段时间。我无法控制原始源文件。我只是想翻译一下。翻译实际的HTML/PHP源文件允许翻译器在本地看到翻译文件的原始预览,这是一个大加号。太糟糕了。我将再次尝试查找正则表达式;)你能列出所有应该和不应该更换的情况吗?由于“href”已经是一个例外,还有其他例外吗?似乎不应该注释掉在HTML标记中生成动态属性的内联PHP代码。该标记只是一个示例,应该适用于所有HTML标记。