5.PHP YIELD使读取大文件

PHP YIELD使读取大文件

   /**
     * [getLines 逐行读取文件中数据]
     * @author Jhou Shuai
     * @param  [type] $file [description]
     * @return [type]       [description]
     */
    public function getLines($file) {
        $f = fopen($file, 'r');
        try {
            while ($line = fgets($f)) {
                yield $line;
            }
        } finally {
            fclose($f);
        }
    }

   foreach ($this->getLines('mytest.txt') as $n => $line) {
       echo $line;
   }
  
   
    /**
     * [_parse CSV文件读取]
     * @author Jhou Shuai
     * @datetime 2018-12-20T13:48:03+0800
     */
    private function _parse($filename, $keypos = 0) {
        $data = array();
        if (($handle = fopen($filename, "r")) !== FALSE) {
            while (($line = fgetcsv($handle, 1000, ",")) !== FALSE) {
                yield $line;
            }
            fclose($handle);
        }
    }

     $file = '/var/www/xxxx/data/xxxx.csv';
     foreach ($this->_parse($file, 0) as $line) {
            $idcard = preg_replace('# #', '', trim($line[2]));
            $idcard = strtoupper($idcard);
     }

推荐阅读更多精彩内容

  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 2,838评论 4 97
  • PHP7 已经出来1年了,PHP7.1也即将和大家见面,这么多好的特性,好的方法,为什么不使用呢,也希望PHP越来...
    梦幻_78af阅读 1,859评论 1 10
  • LFI、RFI、PHP封装协议安全问题学习 本文希望分享一些本地文件包含、远程文件包含、PHP的封装协议(伪协议)...
    Otis4631阅读 2,178评论 0 0
  • 自己做dede的开发时间也比较长了,基本上常用的函数都知道在哪个文件里面,但是时间一长,也有点模糊了,俗话说:好记...
    大刘的英语世界阅读 1,414评论 1 9
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,373评论 3 64
  • 她才几岁 我猜不出来 蹬着滑板车 穿着红背心 蓝底裤 天儿也没那么热嘛 她兴冲冲地 闯进了我的眼底 丢下了踏板车 ...
    温暖的兮忆阅读 104评论 0 0
  • 2018年11月20日 星期二 晴 昨晚下半夜是一点觉没睡好,硕宝不舒服起来吐了几次,看...
    二年级二班方硕妈妈阅读 131评论 0 0
  • 为什么要选择悟空? 品牌 优越感: 1,目前全国进入城市最多得品牌 2,覆盖城市量最多的品牌 3,一个月的时间进入...
    静谧优雅老太阅读 162评论 0 1
  • 昨天早上,起床,吃早饭,切肉,炒臊子…当我看着一锅的肉片,略带腥气的味道流进肺腑,这一刻,我突然感觉有点年味了...
    悲观主义的花阅读 150评论 0 1
  • 原以为600字的作文是要人命的,因为学生时代每次作文都是一项艰巨的任务,挤牙膏,拼好词好句好段然后数一数够...
    ed82c163895e阅读 285评论 0 0