-1

我不想在 php.ini 中打开 php_short_tag 的麻烦,而且我想使用 xml 而不会出现短标签可能引入的问题,因此我通过使用搜索和替换替换了代码中每个出现的短标签。

我想我应该在这里分享它,因为我发现很多答案在我调整它们之前都不起作用

  1. 首先搜索并替换<?=<?phpNOTE: 确保<?php 其后有一个空格,以便<?=code将 be<?php code和 not <?phpcode

  2. 正则表达式是<[?][\=](?!php),在 debuggex.com上查看

  3. 然后搜索并替换<?<?phpNOTE: 确保<?php 它后面有一个空格,这样<?code将是<?php code而不是 <?phpcode

  4. 正则表达式是<[?](?!php),在 debuggex.com上查看


使用 __dirname 时如何转到父目录?

目录结构:

  • WebAPIRole
    • GulpFile.js
  • 测试
    • Karma.conf.js

来自GulpFile.js的 Gulp 代码

gulp.task('test', function (done) {
    karma.start({
        configFile: _configFile: __dirname + '\\..\\test\\karma.conf.js',
        singleRun: true
    }, done);
});

所以我的问题是转到父目录并访问karma.conf.js。由于某种原因,无法解析路径..\\以返回到 WebApiRole 的父目录。有人能指出我正确的方向吗?

4

2 回答 2

-1

只需将=符号设为可选符号即可。

preg_replace('~<\?=?(?!php\b)~', '<?php ', $str);

或者

preg_replace('~<\?=?(?!php\b)(\w)~', '<?php \1', $str);

演示

于 2015-06-16T04:28:24.897 回答
-1

只是抬头<?=符号模仿了回声功能,所以我不得不取消我的更改,例如:

<?= __("Key") ?>改为<?php __("Key") ?>

这没有输出语言,所以我通过正则表达式取消了这个:

(?<=php)\ (?=__[(]) <?php __("Key") ?>变成了这个<?php echo __("Key") ?>

于 2015-06-20T16:51:22.713 回答