编码 包含/要求输出到 json



我有一个已经构建的复杂php应用程序,它不能按照MVC设计模式工作,也没有内置的模板系统(树枝等)。

发生的情况是,它不是在末尾获取包含模板的变量(html out put) ->而是打印html(包括'foo/somepagethatcontainshtmlandphp.php')。

我的问题?该页面是从使用 Ajax 的远程服务器请求的。我想让该页面由 JSON 编码。并使用 json.parse 在远程服务器上对其进行解码。

我的问题:

如何对已经打印出来的 html 输出进行编码并将其呈现为 JSON。 甚至可能吗?

我的文件结构:模板/sometmp.php

<html>
  <head>
   <?php echo 'some shitty way to use html and php together'; ?>
  </head>
<body>
<?Php echo 'some lame php and html code written in the same place'; ?>
</body>
</html>

索引.php

远程服务器:

$.ajax (
      .....
      .....
      success: function(data) {
          console.log(JSON.parse(data));
      }
);

提前谢谢。

使用输出缓冲。 例如:

ob_start();
include 'foo/somepagethatcontainshtmlandphp.php';
$html = ob_get_clean();
echo json_encode(array(
    'some_data' => ...,
    'html' => $html
));

请将此代码视为草图,您应该从草图开始。还有更多事情需要考虑,例如,我应该使用包含还是要求,或者我应该使用 JSON 或简单的文本响应。答案取决于您,并取决于您的应用程序/网站的进一步逻辑。

有关输出缓冲的详细信息,请参阅文档

如果我

理解你的问题,你可以简单地缓冲包含文件的输出,给缓冲区json_encode并输出这个。

<?php
ob_start();
include 'foo/somepagethatcontainshtmlandphp.php'
$output = ob_get_clean()
echo json_encode($output);
?>

这可以由Javascript解析为json。

最新更新