• 在nginx下导出数据库数据


    首先上干货 解决问题

    set_time_limit(0); //设置脚本运行时间为不限制  因为php脚本默认时间为30秒
    ini_set('memory_limit', -1); //取消脚本运行内存限制 如果你的数据量大且需要处理
    error_reporting(E_ALL);  //把报错打开吧 有些数据是不是有错误
    
    echo 'name,phone,age,content';  //设置表格表头
    echo "
    ";
    //这里是关联数组 一般数据库数据格式 替换为自己的数据就好
    $data = array(
        0=>array('name'=>'张三','phone'=>'18236666666','age'=>'18','content'=>'这是一段文字,带逗号需要处理'),  
        1=>array('张三','18236666666','18',"这是一段文字,(
    )换行需要处理"),  
    );
    
    foreach($data as $v){
          $text = iconv('utf-8','gb2312',$val['memo']);  //处理中文乱码
          $text =str_replace(array("
    ", "
    ", "
    "), "",$text);  //处理文本中换行符
          $text =str_replace(array(","), "",$text);  //处理英文格式下的"," 因为输出是根据,隔开单元格
          echo $v['name'].','.$v['phone'].','.$v['age'].','.$text; //输出数据
          echo "
    ";
    }

    然后在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文件中直接加上

    1. 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文字乱码问题 
    

      

     

  • 相关阅读:
    操作系统概述总结
    string类的用法总结
    stack的简单用法总结
    递归用法总结
    C语言中常见的图形打印总结
    C++中list的用法总结
    STL中find和sort的用法总结
    unity Physics/Physics2DProjectSettings中LayerCollisionMatrix的存储方式
    UnityEvent<T> 系列化
    十字相乘法
  • 原文地址:https://www.cnblogs.com/haizizhu/p/8365837.html
Copyright © 2020-2023  润新知