我正在将一些mysql数据导出到文本文件中。可以通过表格中的复选框选择数据。
我想格式化文本文件中的文本。我该怎么做?
这是我的代码:
<?php
if ($_POST['exporttxt']) {
for($i=0;$i<count($_POST['checkbox']);$i++){
$export_id = $checkbox[$i];
$text = mysql_query("SELECT code FROM tickets WHERE id='$export_id'");
$text = mysql_fetch_assoc($text);
$text = $text["code"];
$filename = "export";
$filedate = date("Y-m-d");
$fileext = ".txt";
$fileall = $filename.$filedate.$fileext;
ob_end_clean();
header("Content-Type: application/octet-stream");
header("Content-disposition: attachment;filename=\"$fileall\"");
header("Content-Type: application/force-download");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Length: ".strlen($output).";\n");
echo($text);
}
}
exit();
?>
将导出的数据是包含16位数的数字。在每个数字之后我想要一个换行符。如果可能的话,我希望每个数字都有4位数后的空格,例如:
未格式化的数字:1234567891234567 数字格式:1234 5678 9123 4567
我该怎么做?
答案 0 :(得分:3)
echo chunk_split($text, 4, " "); <-- you seems forgotten a line break
偏离话题: -
$output
定义在哪里?ob_start()
答案 1 :(得分:2)
您需要将数字表示为字符串:
$num = preg_replace("/(?<=\d)(?=(\d{4})+(?!\d))/", " ", $num);
将"1234567891234567"
变为"1234 5678 9123 4567"
新行将由\n
答案 2 :(得分:1)
试试这个 - &gt;
// divide in to chunks of 4 characters
$chunks = str_split($text['code'], 4);
//Convert array to string. Each element separated by the given separator.
$result = implode(' ', $chunks);