php使用指定编码导出mysql数据到csv文件的方法

 更新时间:2015年03月31日 14:54:52   作者:不吃皮蛋  
这篇文章主要介绍了php使用指定编码导出mysql数据到csv文件的方法,涉及php查询mysql及操作csv文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了php使用指定编码导出mysql数据到csv文件的方法。分享给大家供大家参考。具体实现方法如下:

<?php
/*
 * PHP code to export MySQL data to CSV
 * 
 * Sends the result of a MySQL query as a CSV file for download
 * Easy to convert to UTF-8.
 */

 /*
 * establish database connection
 */

$conn = mysql_connect('localhost', 'login', 'pass') or die(mysql_error());
mysql_select_db('database_name', $conn) or die(mysql_error($conn));
mysql_query("SET NAMES CP1252");
/* 
 * execute sql query   
 */
$query = sprintf('SELECT field1,field2 FROM table_name');
$result = mysql_query($query, $conn) or die(mysql_error($conn));
/* 
 * send response headers to the browser
 * following headers instruct the browser to treat the data as a csv file called export.csv
 */
header('Content-Type: text/csv; charset=cp1252');
header('Content-Disposition: attachment;filename=output.csv');
/* 
 * output header row (if atleast one row exists) 
 */ 
  
$row = mysql_fetch_assoc($result); 
if ($row) {
  echocsv(array_keys($row));
}

/*
 * output data rows (if atleast one row exists)
 */
while ($row) {
  echocsv($row);
  $row = mysql_fetch_assoc($result);
}

/*
 * echo the input array as csv data maintaining consistency with most CSV implementations
 * - uses double-quotes as enclosure when necessary
 * - uses double double-quotes to escape double-quotes
 * - uses CRLF as a line separator
 */

function echocsv($fields)
{
  $separator = '';
  foreach ($fields as $field) {
    if (preg_match('/\\r|\\n|,|"/', $field)) {
 $field = '"' . str_replace('"', '""', $field) . '"';
    }
    echo $separator . $field;
    $separator = ',';
  }
  echo "\r\n";
}
?>

希望本文所述对大家的php程序设计有所帮助。

相关文章

  • php动态函数调用方法

    php动态函数调用方法

    本文主要给大家介绍了php中动态调用函数的方法,实例分析了php动态函数的实现原理与具体实现步骤,需要的朋友可以参考下
    2015-05-05
  • php array_flip() 删除数组重复元素

    php array_flip() 删除数组重复元素

    在PHP中,用于删除数组中重复元素有一个可用的函数,那就是 array_unique(), 但是它并不是一个最高效的方法,使用array_flip() 函数将比array_uniqure()在速度上高出五倍左右。
    2009-01-01
  • PHP 5.3和PHP 5.4出现FastCGI Error解决方法

    PHP 5.3和PHP 5.4出现FastCGI Error解决方法

    这篇文章主要介绍了PHP 5.3和PHP 5.4出现FastCGI Error解决方法,需要的朋友可以参考下
    2015-02-02
  • PHP使用strrev翻转中文乱码问题的解决方法

    PHP使用strrev翻转中文乱码问题的解决方法

    这篇文章主要介绍了PHP使用strrev翻转中文乱码问题的解决方法,通过自定义函数遍历字符串并设置编码格式解决乱码问题,需要的朋友可以参考下
    2017-01-01
  • php实现的返回数据格式化类实例

    php实现的返回数据格式化类实例

    这篇文章主要介绍了php实现的返回数据格式化类及其应用实例,包括针对XML、JSON等的格式化,非常具有实用价值,需要的朋友可以参考下
    2014-09-09
  • php eval函数用法总结

    php eval函数用法总结

    这个函数我想很多朋友都知道,黑客用得最多的一句了,可以解析php 代码并且运行哦,eval是函数不可在php中禁止,以前我就以为可以在php.ini禁止此函数,结果失败了
    2012-10-10
  • 高质量PHP代码的50个实用技巧必备(上)

    高质量PHP代码的50个实用技巧必备(上)

    这篇文章主要为大家分享了50个高质量PHP代码的实用技巧,大家必备的php实用代码,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • is_uploaded_file函数引发的不能上传文件问题

    is_uploaded_file函数引发的不能上传文件问题

    不能上传文件,都返回失败。经过排查发现是PHP中的is_uploaded_file函数在捣鬼,下面是具体的处理方法,有类似情况的朋友可以参考下
    2013-10-10
  • php格式化电话号码的方法

    php格式化电话号码的方法

    这篇文章主要介绍了php格式化电话号码的方法,涉及php正则表达式的相关技巧,需要的朋友可以参考下
    2015-04-04
  • PHP中数组的三种排序方法分享

    PHP中数组的三种排序方法分享

    PHP中数组的三种排序方法,主要包括冒泡排序法、选择排序法、插入排序法,需要的朋友可以参考下
    2012-05-05

最新评论