как исправить вывод php excel, показывающий TRUE для 0 значений - PullRequest
0 голосов
/ 23 октября 2019

У меня проблема, когда я пытаюсь получить csv экспорт с помощью php, и проблема в том, что, когда значение равно 0, оно будет показывать мне '0 или ИСТИНА в выходных данных. но если значение выше 0, то у меня нет проблем. как я могу показать 0 как просто 0?

Я пытался добавить \ ', но он тоже будет выводиться. Я просто хочу 0 на выходе. это код, который я использую:

$putArray = array(
"n1" => $getPhoneR[name],
"n2" => $getPhoneR[phone],
"n3" => $getDataR[reason], 
"n4" => $tarikh, 
"n5" => $zaman, 
"n6" => $setState[1], 
"n7" => $getDataR[work],
"n8" => $getDataR[mojodi]);

$data[] = $putArray;

function cleanData(&$str)
  {
    if($str == 't') $str = 'TRUE';
    if($str == 'f') $str = 'FALSE';
    if(preg_match("/^0/", $str) || preg_match("/^\+?\d{8,}$/", $str) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $str)) {
      $str = "'$str";
    }
    if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';

  }

  // filename for download

  if($_GET[sarbarg] == 8)
      $filename = "Code-$_GET[page].csv";
  else
      $filename = "Excel-Text-" . date('H:i:s-Y/m/d') . ".csv";

  header("Content-Disposition: attachment; filename=\"$filename\"");
  header('Content-type: application/csv;charset=utf-8');
  $out = fopen("php://output", 'w');

  $flag = false;
  foreach($data as $row) {
    if(!$flag) {
      // display field/column names as first row
      fputcsv($out, array_keys($row), ',', '"');
      $flag = true;
    }
    array_walk($row, __NAMESPACE__ . '\cleanData');
    fputcsv($out, array_values($row), ',', '"');
  }

  fclose($out);

, поэтому я ожидаю получить нулевые значения как 0, а не '0 или ИСТИНА

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...