构建CSV文件后,在将任何内容打印到PHP页面时遇到问题。
这里是输入->数组的解析。
<?php
if (isset($_POST['convert'])) {
PrintExcel();
}
function PrintExcel() {
ob_clean();
ob_start();
global $errors, $invalid_input, $finalassembly, $csv_output, $headers, $filename;
$input = $_POST['convert'];
$inputdata = explode("\n", $input);
$invalid_input = array();
$csv_output = array();
$filename = date("Y-m-d h:i:sa") . substr(str_shuffle(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ),0, 1) . substr(str_shuffle (aBcEeFgHiJkLmNoPqRstUvWxYz0123456789),0, 31);
$headers = ['Flag'];
foreach ($inputdata as $key => $val) {
$value = str_replace(array("\r", "\n", "\r\n", "\v", "\t", "\0","\x"), " ", $val);
$pos = substr($value,0, strpos($value, ' '));
if (preg_match("[\byes\b|\bno\b]", $val) && (preg_match("enter code here[\bCT\b|\bsi\b]", $val) ===1)){
$usergroup = ",,,,,,,,,,,333/333/xxx/FffffK,";}
else {
$invalid_input[] = "Could not map $pos qualifications to any
usergroup";
continue;
}
if (!empty($pos) && (!empty($usergroup))) {
$finalassembly = "update,".$pos . $usergroup.",";
$csv_output[] = $finalassembly;
} else {
continue;
}
}
file_put_contents('errors.txt', $invalid_input);
$recoveredData = file_get_contents('errors.txt');
$recoveredArray = unserialize($recoveredData);
print_r($recoveredArray);
$empty_input = array_filter($csv_output);
if (!empty($empty_input))
saveCSV();
}
在此函数中,我正在寻找有效的输入并将无效的输入保存到数组中。我尝试打印该数组,尝试将其保存为文本,然后打印出来。只要有任何有效的输入数据,就不会打印。
当我有有效的输入数据时,它将运行:
function saveCSV() {
global $errors, $finalassembly, $csv_output, $headers, $filename;
ob_end_clean();
$file = fopen('php://memory', "w");
fputcsv($file, $headers);
foreach ($csv_output as $line)
{
fputcsv($file,explode(',',$line));
}
rewind($file);
$csvFile = stream_get_contents($file);
fclose($file);
header('Content-Type: text/csv');
header('Content-Length: '.strlen($csvFile));
header('Content-Disposition: attachment; filename="'.$filename.'.csv"');
exit($csvFile);>?
但是不会打印任何错误,并且我无法打印任何变量。
关于为什么我什么都不打印的任何线索?
在调用saveCSV()函数之前和之后,我都尝试过打印它们。
答案 0 :(得分:1)
发送其他任何信息后都无法发送标题信息 内容
http://php.net/manual/de/function.header.php
如果要查看错误,请在标题说明中注明。
使用简单的echo $ csvFile代替exit()。