插入换行符或带有preg_replace的制表符


Inserting line break or tab with preg_replace

我正在制作一个网页,在这个网页中,我必须在一个JSON变量($grav,包含JSON中的所有原始数据)中插入一个换行符或一个选项卡,在3种给定的情况下。之后,我强制将数据下载为xls文件。除了";preg_ replace";部分它找到分隔符,但不是插入一个";''n〃;或";''t〃;根据下载的xls文件,它只插入了一个空白(数据都在一个单元格中,而不是在多列和多行中(这就是为什么我需要换行符和制表符)。

$grav='"title":[{"field1":,"field3":,{"field4"}';
        
        $grav = preg_replace("/'},'{/",  "},'n{",  $grav);
        $grav = preg_replace("/'['{/",  "'n[{",   $grav);
        $grav = preg_replace("/,'"/",  ",'"'t",  $grav);
        header("Content-Description: File Transfer");
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment; filename="data_ '. date("Ymd") . '_' . $id . '.xls"');
        header("Content-Transfer-Encoding: binary");
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header("Content-Type: application/force-download");
        header("Content-Type: application/download");
        
        echo $grav;

我该怎么解决这个问题?

您正试图将json代码分解为3行?。任何我将如何给出一个想法来解决这个问题使用数组。尝试使用json进行转换。它可能会帮助你

<?php 
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');// i used associate array which is similar to json data
reset($fruit);
while (list($key, $val) = each($fruit)) {
$grav .= $key."=>". $val."<br>";// brakes the line into 3 
}
  header("Content-Description: File Transfer");
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment; filename="data_ '. date("Ymd") . '_' . $id . '.xls"');
    header("Content-Transfer-Encoding: binary");
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header("Content-Type: application/force-download");
    header("Content-Type: application/download");
echo $grav;
?>