Javascript 从php文件中去除空白

Javascript 从php文件中去除空白,javascript,php,regex,json,whitespace,Javascript,Php,Regex,Json,Whitespace,我有一个输出json的php文件 <?php header('Content-Type: application/json'); ?> var data = { "cars": [ <?php foreach ($runshowcars as $rowscar):;?> { "id":"<?php echo $rowscar['id'] ?>", "name":"<?

我有一个输出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文件中删除空白,这显然不是一个理想的解决方案,因为它使维护变得非常困难

你怎么能去掉这里所有的空白


我见过很多这样的问题,但是我不能在这里使用这样的东西,因为我的数据不在变量中?

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

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

像这样:

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

否则返回javascript,而不是json。至少如果您在结果前面加上var data=part。

您可以像这样删除外部的所有内容:

<?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函数,这可能是更好的方法:

<?php

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

?>

但是您在PHP标记之外显式地声明空白…您的代码目前甚至没有生成该输出,因为它缺少car元素之间的逗号。