`
天梯梦
  • 浏览: 13730230 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

CodeIgniter 操作 CSV

阅读更多

A Comma separated values (CSV) file is a computer data file used for implementing the tried and true organizational tool, the Comma Separated List. The CSV file is used for the digital storage of data structured in a table of lists form, where each associated item (member) in a group is in association with others also separated by the commas of its set. Each line in the CSV file corresponds to a row in the table. Within a line, fields are separated by commas, each field belonging to one table column. Read more about this file format here .

 

 

There is a handy library available in CodeIgniter framework which is the CSVReader that will makes reading or parsing CSV formatted data easily.

 

In this article, I try to show you how to use it. But since this library is not included in CodeIgniter package you need to add this to your system/libraries directory.

 

Create a new file in your system/libraries directory named it to csvreader.php . Go here and download the code.

 

The CSVReader Class

 

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* CSVReader Class
*
* $Id: csvreader.php 147 2007-07-09 23:12:45Z Pierre-Jean $
*
* Allows to retrieve a CSV file content as a two dimensional array.
* The first text line shall contains the column names.
*
* @author        Pierre-Jean Turpeau
* @link        http://www.codeigniter.com/wiki/CSVReader
*/
class CSVReader {

    var $fields;        /** columns names retrieved after parsing */
    var $separator = ',';    /** separator used to explode each line */

    /**
     * Parse a text containing CSV formatted data.
     *
     * @access    public
     * @param    string
     * @return    array
     */
    function parse_text($p_Text) {
        $lines = explode("\n", $p_Text);
        return $this->parse_lines($lines);
    }

    /**
     * Parse a file containing CSV formatted data.
     *
     * @access    public
     * @param    string
     * @return    array
     */
    function parse_file($p_Filepath) {
        $lines = file($p_Filepath);
        return $this->parse_lines($lines);
    }
    /**
     * Parse an array of text lines containing CSV formatted data.
     *
     * @access    public
     * @param    array
     * @return    array
     */
    function parse_lines($p_CSVLines) {
        $content = FALSE;
        foreach( $p_CSVLines as $line_num => $line ) {
            if( $line != '' ) { // skip empty lines
                $elements = split($this->separator, $line);

                if( !is_array($content) ) { // the first line contains fields names
                    $this->fields = $elements;
                    $content = array();
                } else {
                    $item = array();
                    foreach( $this->fields as $id => $field ) {
                        if( isset($elements[$id]) ) {
                            $item[$field] = $elements[$id];
                        }
                    }
                    $content[] = $item;
                }
            }
        }
        return $content;
    }
}
 

Then supposing we have a CSV file that contains data like this.

Id,Name,Category,Price
1,iPhone,Mobile,300,
2,iMac,Desktop,529,
3,MacBook,Mobile,2000,
4,iTouch,Gadgets,157,
5,Wii,Gaming,1250,

 

What is our aim here is read the data form the CSV file then present it in a tabular form in an html table.

 

Supposing you have a clean install CI in your development server. Go tosystem/application/controller folder and open the welcome.php file and add the function below.

 

   function index()
	 {
           $this->load->library('csvreader');

           $filePath = './csv/products.csv';

           $data['csvData'] = $this->csvreader->parse_file($filePath);

           $this->load->view('csv_view', $data);
	 }
 

Next open system/application/views create a new file name it csv_view.php and populate the code below.

 

<table cellpadding="0" cellspacing="0">
	<thead>
	<th>
			<td>PRODUCT ID</td>
			<td>PRODUCT NAME</td>
			<td>CATEGORY</td>
			<td>PRICE</td>
	</th>
	</thead>

	<tbody>
            <?php foreach($csvData as $field){?>
                <tr>
                    <td><?=$field['id']?></td>
                   <td><?=$field['name']?></td>
                    <td><?=$field['category']?></td>
                    <td><?=$field['price']?></td>
                </tr>
            <?php }?>
	</tbody>

</table>
 

Thats how easy reading CSV data using CI. Add some styling and you can have like this.

 

table data

 

After writing this short tutorial, I realized that this may not be helpful in any way. I dont know why I came up with that stupid thought. Maybe for the reason CSV is quite old data format? And maybe no one is using this right now? hmmm tell me what you think about it. Anyway I still posting it hoping it will help someone.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    CI框架(CodeIgniter)实现的导入、导出数据操作示例

    本文实例讲述了CI框架(CodeIgniter)实现的导入、导出数据操作。分享给大家供大家参考,具体如下: 在libraies中引用PHPExcel这个类(phpexcel.php) public function excel_put(){ //先做一个文件上传,保存文件 ...

    Expense-Management-System-In-Java_expensemanagement_DEMO_

    7. **导出与导入功能**:为了方便数据备份和共享,系统通常支持将数据导出为CSV或Excel格式,同时也可导入外部数据到系统中。 8. **提醒功能**:用户可以设置提醒,比如定期支付的账单或即将到来的预算期限,系统会...

    100个php练手项目

    17. **CSV数据处理**:读取、写入CSV文件,进行数据分析。 通过这些项目,你不仅可以熟悉PHP语法,还能了解到实际开发中的常见问题及解决策略。每一个项目都是一个独立的小任务,通过实践,你将逐步建立起对PHP开发...

    PHP搭建基于CI框架的REST服务架构

    为了实现这个功能,我们需要在CI控制器中定义一个方法,例如`users()`,该方法从数据库获取用户数据并根据请求的格式(XML、JSON、HTML或CSV)进行响应。CI框架提供了方便的数据格式化工具,使得转换数据格式变得...

    PHP大作业_课程设计_教务在线系统

    这可能涉及到CSV或PDF格式的数据导出。 10. **安全性**:防止SQL注入、XSS攻击等网络安全问题,通过参数化查询、输入验证、安全编码等方式加强系统安全性。 以上只是部分关键知识点,实际项目中可能还包括其他如...

    C/C++/Java/android/PHP/iOS/Python期末试卷.rar

    5. 文件操作:读写文件、处理CSV或JSON数据。 6. 面向对象:类和对象、继承、多态。 7. 异常处理:try-except-finally。 8. 科学计算与数据分析:NumPy、Pandas、Matplotlib库。 9. Web开发:Flask、Django框架。 10...

    成绩管理系统下载php

    4. 数据导出:系统提供成绩报表的导出功能,通常为Excel或CSV格式,方便进一步分析或打印。 5. 安全性:使用PHP实现的身份验证和授权机制,确保只有授权用户才能访问和操作成绩数据。 6. 错误处理:通过PHP的错误...

    PHP实例开发源码-W3B旗下的城市黄页系统.zip

    文件“132690079445204145”可能是数据库的备份文件,或者是一份包含特定数据的CSV或JSON文件。这个文件可以用来填充系统初始数据,使得开发者在测试和调试时能有实际的数据进行操作。 在开发过程中,PHP框架如...

    基于PHP的中草药名方大全(8019条数据)PHP版.zip

    5. Web开发框架:如果项目使用了框架,如Laravel、Symfony或CodeIgniter,需要了解其基本架构和MVC(Model-View-Controller)模式。 6. 数据处理和解析:可能涉及到对中草药数据进行清洗、分析和格式化,可能用到...

    Posnic SMS System:群发短信系统-开源

    系统支持导入联系人列表,可能是CSV或Excel格式,方便数据的批量导入和管理。此外,用户界面可能提供了一个直观的界面,用于添加、编辑和删除联系人,以及创建和编辑短信模板,以提高效率。 集成的免费短信提供商...

    学生信息管理系统.zip

    此外,"xscj"可能代表“学生成绩”或相关文件,这可能是一个包含学生考试成绩的CSV、JSON或其他格式的文件。开发人员可能设计了一个功能,允许导入或导出这些成绩,以便于数据分析或备份。 总的来说,这个项目是一...

    PHP实例开发源码-亚马逊分类目录 php版.zip

    4. MVC框架理解:如果项目使用了某种MVC(Model-View-Controller)框架,如Laravel或CodeIgniter,那么理解这种框架的工作原理至关重要。 通过分析和学习这个项目,开发者不仅可以提升PHP编程技巧,还能学习到如何...

    PHP实例开发源码-php轩宇淘宝客系统.zip

    2. **模型(Models)**:模型文件是业务逻辑的核心,它们负责与数据库交互,执行查询、更新和删除操作,以及处理数据验证和业务规则。 3. **视图(Views)**:视图文件负责展示数据,它们通常包含HTML、CSS和...

    基于PHP的盾灵php新闻发布系统.zip

    2. **数据库文件**:可能是SQL脚本,用于创建数据库结构,或者XML/CSV格式的数据,用于填充初始数据。 3. **配置文件**:如config.php,包含数据库连接信息、网站设置等关键参数。 4. **文档**:用户手册、安装指南...

    codeowl_grid_control:新联邦贸易委员会第 2 部分

    5. 导入/导出:支持数据的导入和导出功能,如CSV或Excel格式。 6. 自定义列:允许用户选择要显示的列,调整列宽,以满足不同需求。 7. 行操作:提供添加、删除、复制、移动等行级别的操作。 8. 表格样式:支持自定义...

    10个简化PHP开发的工具

    CakePHP强调约定优于配置,使得开发者能更快地构建应用,同时也提供了ORM(对象关系映射),方便数据库操作。 2. **pChart**:pChart是一个用于创建图表的开源PHP库,适合那些需要在Web应用中展示数据的项目。它...

    generateur-cv

    6. **数据库文件**:如 `schema.sql`,用于初始化数据库结构,或者 `.json` 或 `.csv` 文件,用于导入初始数据。 7. **样式表**(CSS)和图像资源:如 `styles.css` 和 `images/` 目录,它们定义了简历的外观和感觉...

    例子

    5. **数据处理与分析**:结合数据分析库如PHPExcel,处理CSV、Excel等文件,进行数据统计和分析。 6. **邮件发送**:通过PHPMailer等库实现邮件发送功能,用于用户注册验证、通知等。 7. **图形图像处理**:GD库或...

    mw-stock-master

    - **导入导出功能**:支持CSV或Excel文件的导入导出,方便数据交换和备份。 为了深入了解并使用"mw-stock-master",你需要熟悉PHP编程,掌握基本的Web开发概念,如HTTP请求/响应、MVC模式等,并了解如何配置和运行...

    er-cotizador

    用户可能还能导出报价详情,例如PDF或CSV格式,以便于打印或分享。 7. 多语言支持:考虑到不同的用户群体,"er-cotizador"可能具有多语言界面,让用户可以选择自己的首选语言。 总之,"er-cotizador"是一个基于PHP...

Global site tag (gtag.js) - Google Analytics