0

php.json

{
    "data" : "<?php echo $data; ?>"
}

家玉

script.
                var data = !{data};

模板.js

gulp.task('templates-in-one-folder', () => {
  let data = dddata('ru');
  return gulp.src('app/**/*.jade')
    .pipe(plumber({errorHandler: errorHandler('Error in \'templates\' task')}))
    .pipe(cached('jade'))
    .pipe(gulpif(global.watch, inheritance({basedir: 'app'})))
    .pipe(filter(file => /app[\\\/]pages/.test(file.path)))
    .pipe(jade({basedir: 'app', data}))
    .pipe(prettify({
      braceStyle: 'expand',
      indentWithTabs: true,
      indentInnerHtml: true,
      preserveNewlines: true,
      endWithNewline: true,
      wrapLineLength: 120,
      maxPreserveNewlines: 50,
      wrapAttributesIndentSize: 1,
      unformatted: ['use']
    }))
    .pipe(staticHash({asset: 'dist', exts: ['js', 'css']}))
    .pipe(rename({dirname: '.'}))
    .pipe(gulp.dest('dist'))
});

我的输出

</div>
        <script>
            var data = < ? php echo $data; ? > ;

        </script>
    </body>

'<' '?' 之间 插入空格并且php代码无法正常工作。我该如何解决?我尝试使用带有正则表达式的'ignoreCustomFragments'的htmlmin,但它也不起作用......

4

1 回答 1

0

这里有一些问题,正如 treyBake 提到的,你不应该混合 PHP 和 JS。

虽然有很多方法可以做到这一点,但您的第一个问题是 .json 文件不是 .php 文件。Apache(或您使用的任何网络服务器)不会处理此脚本,而只会返回纯文本。

你不妨试试:

  • 从 php 脚本创建 json 文件,无论是按需还是通过计划事件(如 cron)。

  • 使用 ajax(运行将创建 json 文件的 php 脚本)将数据加载到页面中

SO 的重点是为您指明正确的方向,而不是为您提供完整的解决方案。

我建议你尝试使用 ajax 脚本,回来告诉我们发生了什么。然后我们可以提供更多的指导/帮助

祝你好运

D

于 2019-10-23T13:48:04.297 回答