【问题标题】:strip white spaces from php file从php文件中去除空格
【发布时间】:2014-05-01 15:06:02
【问题描述】:

我有一个输出 json 的 php 文件。

<?php
    header('Content-Type: application/json');
?>
var data = {
    "cars": [
    <?php foreach ($runshowcars as $rowscar):;?>
        {
            "id":"<?php echo $rowscar['id'] ?>",
            "name":"<?php echo $rowscar['name'] ?>"
        }
    ],
    "boats": [
    <?php foreach ($runshowboats as $rowsboat):;?>
        {
            "id":"<?php echo $rowsboat['id'] ?>",
            "name":"<?php echo $rowsboat['name'] ?>"
        }
    ],  
};

这可行,但输出看起来像这样。

                        var data = {
        "cars": [
        {
            "id":"1",
            "name":"Ford"
        }
        ,{
            "id":"2",
            "name":"Honda"
        }
        ]
        };

我希望它看起来像这样。

var data = {"cars": [{"id":"1","name":"Ford"},{"id":"2","name":"Honda"}]};

我发现这样做的唯一方法是从我的 php 文件中删除空格,这显然不是一个理想的解决方案,因为它很难维护。

这里的空格怎么去掉?

我已经看到很多像 How to minify php page html output? 这样的问题,但是由于我的数据不在变量中,所以我无法在这里工作?

【问题讨论】:

  • 但是您明确声明了 PHP 标记之外的空格...
  • 您的代码目前甚至没有产生该输出,因为它缺少汽车元素之间的逗号。

标签: javascript php regex json whitespace


【解决方案1】:

为什么不将数据收集到一个数组中并将其编码为 json。

像这样:

$data=array('cars'=>$runshowcars, 'boats'=>$runshowboats);
print json_encode($data);

(否则你会返回 javascript,而不是 json。至少如果你在结果前面加上 var data = 部分。)

【讨论】:

    【解决方案2】:

    只需创建一个多维关联数组并使用json_encode

    【讨论】:

      【解决方案3】:

      您可以像这样删除&lt;?php ?&gt; 之外的所有内容:

      <?php
          header('...') ;
          echo 'var data = {' ;
          echo '"cars": [' ;
          foreach ($runshowcars as $rowscar)
          {
              echo '{' ;
                  echo '"id":"'.$rowscar['id']?'",' ;
                  echo '"name":"'.$rowscar['name'] ;
              echo '}' ;
          }
          echo '],' ;
          ...
      ?>
      

      或者您可以尝试 json_encode php 函数(这可能是 imo 更好的方法):

      <?php
      
          $data = Array('cars'=>$runshowcars,'boats'=>$runshowboats) ;
          echo 'var data = '.json_encode($data) ;
      
      ?>
      

      【讨论】:

        猜你喜欢
        • 2013-01-30
        • 2017-11-03
        • 1970-01-01
        • 2016-11-07
        • 2018-10-25
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        相关资源
        最近更新 更多