php导出csv格式数据并将数字转换成文本的思路以
近期,我接触到一个项目,需要将统计结果导出为CSV格式以便制作报表。根据我的经验,我将分享一种实现这一功能的方法,并附上相关代码。如有更好的方案,欢迎高手们指正。
我们定义一个字符串来存储CSV内容。例如:
```php
$exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期' . "";
```
假设我们有一个需要保存为CSV的数组,我们可以使用foreach循环来遍历它。例如:
```php
if (!empty($lists)){
foreach($lists as $key => $value){
$time = date("Y-m-d_H:i:s", $value['add_time']);
$exportdata .= "\"" .
$value['Rule_id'] . "\"," .
$value['Rule_name'] . "\"," .
$value['Matching_level'] . "\"," .
$value['Rule_action'] . "\"," .
$value['Service_type'] . "\"," .
$value['Keyword1'] . "\"," .
$value['Keyword2'] . "\"," .
$value['Keyword3'] . "\"," .
$value['Matching_word'] . "\"," .
$value['Set_time'] . "\"," .
$value['Validation_time'] . "\"";
}
}
```
在CSV格式中,每个字段之间使用逗号分隔。每一行的末尾使用换行符""来表示。当我们想输出这些数据时,可以执行以下操作:
```php
$filename = "plcinfo_{$date}.csv";
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$filename");
header("Expires: 0");
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
echo mb_convert_encoding($exportdata,"gb2312","UTF-8");
```
在导出数据时,CSV会自动去除数字前面的零,例如,如果你想显示"00001",输出时可能只会显示"1"。为了解决这个问题,我们可以在输出时在数值前加上制表符"\t",将其转化为文本。但在导入时可能会出现额外的引号或空格。这时,可以使用PHP的trim函数来去除这些额外字符。
这段代码还设置了日期和时间戳来命名即将生成的CSV文件。它通过HTTP响应头来控制文件的下载方式。它设置了文件的名称和内容类型,并告诉浏览器这是一个需要被下载的文件,而不是在浏览器中直接打开的文件。它还通过一系列的头信息来控制文件的缓存行为。这些设置都是为了确保文件的传输过程尽可能顺利和高效。它输出了转化后的数据,这些数据以GB2312编码格式呈现,这是一种在中国大陆广泛使用的字符编码标准。
编程语言
- php导出csv格式数据并将数字转换成文本的思路以
- 深入浅析Node环境和浏览器的区别
- javascript用正则表达式过滤空格的实现代码
- vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
- 关于vue v-for循环解决img标签的src动态绑定问题
- 去除HTML标签删除HTML示例代码
- javascript实现Table间隔色以及选择高亮(和动态切换
- PHP单态模式简单用法示例
- 浅谈JS中String()与 .toString()的区别
- angularjs定时任务的设置与清除示例
- PHP扩展模块Pecl、Pear以及Perl的区别
- asp.net jquery+ajax异步刷新实现示例
- PHP魔术方法之__call与__callStatic使用方法
- 详解VUE前端按钮权限控制
- JSP的内部对象
- 正则表达式实现字符的模糊匹配功能示例