细胞内的PHP换行删除qoute

时间:2017-11-16 10:29:37

标签: php csv export-to-csv

这是我的PHP

$val = "";
foreach($data as $v){
  $val .= '"' . $v . "\n" . '"';
}

结果是

//this is inside of cell
sample
"sample
"sample

这是正确的,但我无法弄清楚如何删除"sample中的双引号。只有第一个值没有双引号,其余的将有双引号。

修改

这是我的代码

的结果

enter image description here

这就是我想要的

enter image description here

6 个答案:

答案 0 :(得分:1)

只需删除部分代码,您就可以获得解决方案:

$val = "";
foreach($data as $v){
  $val .= $v . "\n";
}

试试(在excel中维护换行符):

    $val = "";
   foreach($data as $v){
          $val .= $v . "<br style='mso-data-placement:same-cell;' />";
        }

答案 1 :(得分:0)

这样的事情应该可以解决问题

$i = 0
foreach($data as $v){
  $val .= '"' . $v . "\n" . (count($data) !== $i) ? '"' : '';
  $i++;
}

答案 2 :(得分:0)

我认为你可以像这样使用php函数trim

$val = "";
foreach($data as $v){
  if( ''==$val) {
      $val .= trim('"' . $v . "\n" . '"','"');
  }else{
      $val .= '"' . $v . "\n" . '"','"';
  }
}

答案 3 :(得分:0)

 $val .= '"' . $v . "</br>" . '"';
$val=str_replace('"','',$val);

我认为这就是你在循环中寻找的东西。它将删除每个双引号。

答案 4 :(得分:0)

那你去吧

$data = ['sample','sample','sample'];
$val = "";
foreach($data as $v){
  $val .= $v . "\n" ;
}

然后您只需使用fputcsv(),就像这样:

$fp = fopen('file.csv', 'w');
fputcsv($fp, [$val]);

你得到了你想要的结果:

enter image description here

答案 5 :(得分:0)

我的问题的答案是

$val = "";
foreach($data as $v){
  $val .= $v . "\n";
}

 $val = '"'. $val .'"';

我需要在循环之外添加'"'