在nginx下导出数据库数据
首先上干货 解决问题
set_time_limit(0); //设置脚本运行时间为不限制 因为php脚本默认时间为30秒
ini_set('memory_limit', -1); //取消脚本运行内存限制 如果你的数据量大且需要处理
error_reporting(E_ALL); //把报错打开吧 有些数据是不是有错误 echo 'name,phone,age,content'; //设置表格表头
echo "\n";
//这里是关联数组 一般数据库数据格式 替换为自己的数据就好
$data = array(
0=>array('name'=>'张三','phone'=>'18236666666','age'=>'18','content'=>'这是一段文字,带逗号需要处理'),
1=>array('张三','18236666666','18',"这是一段文字,(\r\n)换行需要处理"),
); foreach($data as $v){
$text = iconv('utf-8','gb2312',$val['memo']); //处理中文乱码
$text =str_replace(array("\r\n", "\r", "\n"), "",$text); //处理文本中换行符
$text =str_replace(array(","), "",$text); //处理英文格式下的"," 因为输出是根据,隔开单元格
echo $v['name'].','.$v['phone'].','.$v['age'].','.$text; //输出数据
echo "\n";
}
然后在nginx下找到脚本执行命令
php csv.php > your.csv
下面是介绍原理
set_time_limit (秒数) 返回bool值
设置允许脚本运行的时间,单位为秒。如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,或者是在 php.ini 的 max_execution_time 被定义的值。
参数最大的执行时间,单位为秒。如果设置为0(零),没有时间方面的限制。
如果你的数据量很大很大 那么脚本会跑很久 所以执行时间是需要设置一下的
ini_set() 用来设置php.ini的值,在函数执行的时候生效,脚本结束后,设置失效。无需打开php.ini文件,就能修改配置,对于虚拟空间来说,很方便。
脚本中使用了 ini_set('memory_limit', '64M'); 设定一个脚本运行是能够申请到的最大内存字节数,如果一个脚本中需要处理很大的数据那么这个值就需要设置了ini_set('memory_limit', -1);表示不限制内存
函数注意:
干货来了1:
看手册:
可修改范围是PHP_INI_PERDIR,你可能不知道这是什么意思(参考:http://blog.csdn.net/bravezhe/article/details/18351975)
PHP总共有4个配置指令作用域:(PHP中的每个指令都有自己的作用域,指令只能在其作用域中修改,不是任何地方都能修改配置指令的)
PHP_INI_PERDIR:指令可以在php.ini、httpd.conf或.htaccess文件中修改
PHP_INI_SYSTEM:指令可以在php.ini 和 httpd.conf 文件中修改
PHP_INI_USER:指令可以在用户脚本中修改
PHP_INI_ALL:指令可以在任何地方修改
干货来了2:
开启了安全模式:代码一同样是无效的。
自己在php version = '5.3.3'上测试发现ini_set('safe_mode',true);无效
需要在php.ini下修改:
干货来了3:
修改代码二的方法:
在.htaccess文件中直接加上
- php_value upload_max_filesize "3M"
摘记链接 细说ini_set(); http://blog.csdn.net/littlebo01/article/details/45199161
输出csv文件
在脚本中直接echo 用英文标点 "," 来划分单元格列; 用 "/n" 来划分单元格行
用nginx下输出命令 ">" 将echo出来的文本输出到1.csv文件
php this.php > 1.csv
这里提一下 很方便
iconv('utf-8','gb2312',$val['memo']);//用来解决utf-8文字乱码问题
在nginx下导出数据库数据的更多相关文章
- DB2导入导出数据库数据
导出数据库中数据 在db2cmd命令下生成建库脚本(-z指定模式名) db2look -d BBS -z db2admin -u db2admin -e -o bbs.sql 在db2cmd命令下导出 ...
- mysql导出数据库数据及表结构
1,导出远程数据库数据到本地 mysql -A wj_sms -h192.168.1.105 -uroot -p4321 -ss -e "set NAMES 'utf8';SELECT * ...
- java导出数据到excel里:直接导出和导出数据库数据
一.直接导出 package com.ij34.util; import java.io.FileNotFoundException; import java.io.FileOutputStream; ...
- Java注解(Annotation)用法:利用注解和反射机制指定列名导出数据库数据
闲来没事,想了一个应用的例子:用java如何把数据库的数据根据我们指定的某几列,如第2列,第4列,第6列导出来到Excel里? 写代码也是为了应用的,写好的代码更重要的是在于思考.我自己思考了这个示例 ...
- 配置ODBC DSN数据源,导出数据库数据到Excel过程记录
一.前言 工作中我们可能遇到这样的需要:查询数据库中的信息,并将结果导出到Excel文件.这本来没什么,但数据量比较大时,用PLSQL.toad导出Excel会出现内存不足等情况,使用odbc+Mic ...
- BCP 导入导出数据库数据
使用 bcp 将数据库迁移到 Azure SQL Database --所有 都是在本机sql上运行--先开启cmdshellEXEC sp_configure 'show advanced opti ...
- java 对excel操作 读取、写入、修改数据;导出数据库数据到excel
============前提加入jar包jxl.jar========================= // 从数据库导出数据到excel public List<Xskh> outPu ...
- Excel导出数据库数据
package com.hxkr.util; import java.io.FileOutputStream; import java.util.ArrayList; import java.util ...
- 导出数据库数据制成Excel和txt
引用ICSharpCode.SharpZipLib.dll 1.编写压缩和解压代码 using System; using System.Collections.Generic; using Syst ...
随机推荐
- [BUUOJ记录] [极客大挑战 2019]RCE ME
前面考察取反或者异或绕过,后面读Flag那里我用脏方法过了,没看出来考察啥 进入题目给出源码: <?php error_reporting(0); if(isset($_GET['code']) ...
- 【MySQL】我这样分析MySQL中的事务,面试官对我刮目相看!!
写在前面 相信大部分小伙伴在面试过程中,只会针对面试官提出的表面问题来进行回答.其实不然,面试官问的每一个问题都是经过深思熟虑的,面试的时间相对来说也是短暂的,面试官不可能在很短的时间内就对你非常了解 ...
- 【原创】如何优雅的转换Bean对象
背景 我们的故事要从一个风和日丽的下午开始说起! 这天,外包韩在位置上写代码-外包韩根据如下定义 PO(persistant object):持久化对象,可以看成是与数据库中的表相映射的 java 对 ...
- 跟着兄弟连系统学习Linux-【day08】
day08-20200605 p27.软件包管理简 windows 和 linux 软件是不同的版本. Linux源码包,开源的.绝大部分都是C语言写的.源码包安装速度比较慢.需要先编译后再安装.脚本 ...
- Redis windows版安装测试
1.下载 下载地址是 https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100 ,我选择的是Redis-x64-3.2.10 ...
- 使用wangEditor富文本编辑器
客户端配置说明 下载 百度网盘地址:点我下载 下载密码:x09x 使用 首先要引入wangEditor的js文件,然后引入jQuery 然后在body里: <body> <butto ...
- jmeter做简单的压测
一.JMeter概述jmeter除了可以做借口测试外,还可以做压力测试:首先介绍jmeter中各个组件在压力测试中扮演的角色 1)线程(Threads(Users))即虚拟用户,线程组里可设置需要模拟 ...
- SpringBoot2.0 配置多数据源
一.简述 配置多数据源意思就是在一个项目中使用多个数据库,在项目使用中可以不用手动切换数据库来实现不同数据库的数据获取和更新. 源码地址: https://github.com/hanguilin/b ...
- Playbook使用,编写YAML
YAML是什么? YAML是一个可读性高.用来表达数据序列的格式语言 YAML:YAML Ain't a Markup Language YAML以数据为中心,重点描述数据的关系和结构 YAML的格式 ...
- python模块之----subprocess
例子 >>> subprocess.getstatusoutput('pwd')(0, '/home/ronny')>>> subprocess.getoutput ...