php读取excel文件(.csv)实例介绍

1.在浏览器输出提供下载

PHP有自带的分析.csv函数:fgetcsv

复制代码 代码如下:/*** 导出数据到CSV文件* @paramarray$data数据* @paramarray$title_arr标题* @paramstring$file_nameCSV文件名*/function export_csv(&$data, $title_arr, $file_name = '') { ini_set("max_execution_time", "3600");

array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。
length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。
delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。
enclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。
fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。
注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。

$csv_data = '';

/** 标题 */ $nums = count; for ($i = 0; $i < $nums - 1; ++$i) { $csv_data .= '"' . $title_arr[$i] . '",'; }

 代码如下

if { $csv_data .= '"' . $title_arr[$nums - 1] . ""rn"; }

<?php
$row = 1;
$handle = fopen("test.csv","r");
while ($data = fgetcsv($handle, 1000, ",")) {
 $num = count($data);
 echo "
 $num fields in line $row:n";
 $row++;
 for ($c=0; $c < $num; $c++) {
 echo $data[$c] . "n";
 }
}
fclose($handle);
?>

foreach { for ($i = 0; $i < $nums - 1; ++$i) { $row[$i] = str_replace(""", """", $row[$i]); $csv_data .= '"' . $row[$i] . '",'; } $csv_data .= '"' . $row[$nums - 1] . ""rn"; unset; }

例2

$csv_data = mb_convert_encoding($csv_data, "cp936", "UTF-8");

在百度统计和站长工具使用过程中会涉及到很多csv文件,比如我们下载百度站长工具的404统计数据,直接可以使用以下php脚本来读取csv文件然后更新提交。

$file_name = empty ? date) : $file_name;

php读取excel文件(.csv)参考代码:

if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE")) { // 解决IE浏览器输出中文名乱码的bug $file_name = urlencode; $file_name = str_replace('+', '%20', $file_name); }

 

$file_name = $file_name . '.csv'; header("Content-type:text/csv;"); header("Content-Disposition:attachment;filename=" . $file_name); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header; header; echo $csv_data;}

 代码如下

2.保存到文件

<?php 
function getCSVdata($filename) 

    $row = 1;//第一行开始 
    if(($handle = fopen($filename, "r")) !== false)  
    { 
        while(($dataSrc = fgetcsv($handle)) !== false)  
        { 
            $num = count($dataSrc); 
            for ($c=0; $c < $num; $c++)//列 column  
            { 
                if($row === 1)//第一行作为字段  
                { 
                    $dataName[] = $dataSrc[$c];//字段名称 
                } 
                else 
                { 
                    foreach ($dataName as $k=>$v) 
                    { 
                        if($k == $c)//对应的字段 
                        { 
                            $data[$v]金沙官网线上, = $dataSrc[$c]; 
                        } 
                    } 
                } 
            } 
            if(!empty($data)) 
            { 
                 $dataRtn[] = $data; 
                 unset($data); 
            } 
            $row++; 
        } 
        fclose($handle); 
        return $dataRtn; 
    } 

 
$aData = getCSVdata('all_www.111cn.net .csv'); 
 
foreach ($aData as $k=>$v ){
echo "http://".$v['a']."&lt;br&gt;";
}
?>  

复制代码 代码如下:function export_csv($data, $title_arr, $file_name = '') {

PHP自定义类

本文由金沙官网线上发布于编程,转载请注明出处:php读取excel文件(.csv)实例介绍

您可能还会对下面的文章感兴趣: