欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP按行讀取、處理較大CSV文件的代碼實例

 更新時間:2014年04月09日 11:59:15   作者:  
這篇文章主要介紹了PHP按行讀取、處理較大CSV文件的代碼實例,需要的朋友可以參考下

對于數(shù)百萬條數(shù)據(jù)量的CSV文件,文件大小可能達到數(shù)百M,如果簡單讀取的話很可能出現(xiàn)超時或者卡死的現(xiàn)象。

為了成功將CSV文件里的數(shù)據(jù)導入數(shù)據(jù)庫,分批處理是非常必要的。

下面這個函數(shù)是讀取CSV文件中指定的某幾行數(shù)據(jù):

復制代碼 代碼如下:

/**
 * csv_get_lines 讀取CSV文件中的某幾行數(shù)據(jù)
 * @param $csvfile csv文件路徑
 * @param $lines 讀取行數(shù)
 * @param $offset 起始行數(shù)
 * @return array
 * */
function csv_get_lines($csvfile, $lines, $offset = 0) {
    if(!$fp = fopen($csvfile, 'r')) {
     return false;
    }
    $i = $j = 0;
 while (false !== ($line = fgets($fp))) {
  if($i++ < $offset) {
   continue;
  }
  break;
 }
 $data = array();
 while(($j++ < $lines) && !feof($fp)) {
  $data[] = fgetcsv($fp);
 }
 fclose($fp);
    return $data;
}

調(diào)用方法:
復制代碼 代碼如下:

$data = csv_get_lines('path/bigfile.csv', 10, 2000000);
print_r($data);

函數(shù)主要采用行定位的思路,通過跳過起始行數(shù)來實現(xiàn)文件指針定位。

上述函數(shù)對500M以內(nèi)的文件進行過測試,運行通暢,對于更大的文件未做測試,請斟酌使用或加以改進。

相關文章

  • PHP加密技術的簡單實現(xiàn)

    PHP加密技術的簡單實現(xiàn)

    下面小編就為大家?guī)硪黄狿HP加密技術的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Yii2中添加全局函數(shù)的方法分析

    Yii2中添加全局函數(shù)的方法分析

    這篇文章主要介紹了Yii2中添加全局函數(shù)的方法,結(jié)合實例形式對比分析了2種添加全局函數(shù)的實現(xiàn)技巧,需要的朋友可以參考下
    2017-05-05
  • 對于ThinkPHP框架早期版本的一個SQL注入漏洞詳細分析

    對于ThinkPHP框架早期版本的一個SQL注入漏洞詳細分析

    這篇文章主要介紹了對于ThinkPHP框架早期版本的一個SQL注入漏洞詳細分析,對于網(wǎng)站安全十分重要!需要的朋友可以參考下
    2014-07-07
  • CI框架網(wǎng)頁緩存簡單用法分析

    CI框架網(wǎng)頁緩存簡單用法分析

    這篇文章主要介紹了CI框架網(wǎng)頁緩存簡單用法,結(jié)合實例形式分析了CI框架網(wǎng)頁緩存的原理,以及開啟緩存、刪除緩存等操作技巧,需要的朋友可以參考下
    2018-12-12
  • 基于Laravel 多個中間件的執(zhí)行順序詳解

    基于Laravel 多個中間件的執(zhí)行順序詳解

    今天小編就為大家分享一篇基于Laravel 多個中間件的執(zhí)行順序詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Thinkphp整合微信支付功能

    Thinkphp整合微信支付功能

    這篇文章主要介紹了Thinkphp整合微信支付功能的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12
  • php如何根據(jù)IP獲取當前經(jīng)緯度以及地域信息

    php如何根據(jù)IP獲取當前經(jīng)緯度以及地域信息

    這篇文章主要給大家介紹了關于php如何根據(jù)IP獲取當前經(jīng)緯度以及地域信息的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • PHP8.0新功能之Match表達式的使用

    PHP8.0新功能之Match表達式的使用

    這篇文章主要介紹了PHP8.0新功能之Match表達式的使用,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-07-07
  • PHP中的empty、isset、isnull的區(qū)別與使用實例

    PHP中的empty、isset、isnull的區(qū)別與使用實例

    今天小編就為大家分享一篇關于PHP中的empty、isset、isnull的區(qū)別與使用實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • ThinkPHP模板循環(huán)輸出Volist標簽用法實例詳解

    ThinkPHP模板循環(huán)輸出Volist標簽用法實例詳解

    這篇文章主要介紹了ThinkPHP模板循環(huán)輸出Volist標簽用法,結(jié)合實例形式詳細分析了Volist標簽的功能,使用方法與相關注意事項,需要的朋友可以參考下
    2016-03-03

最新評論