• PHP操作大文件


    $file = new SplFileInfo('foo-bar.txt');
     
    print_r(array(
        'getATime' => $file->getATime(), //最后访问时间
        'getBasename' => $file->getBasename(), //获取无路径的basename
        'getCTime' => $file->getCTime(), //获取inode修改时间
        'getExtension' => $file->getExtension(), //文件扩展名
        'getFilename' => $file->getFilename(), //获取文件名
        'getGroup' => $file->getGroup(), //获取文件组
        'getInode' => $file->getInode(), //获取文件inode
        'getLinkTarget' => $file->getLinkTarget(), //获取文件链接目标文件
        'getMTime' => $file->getMTime(), //获取最后修改时间
        'getOwner' => $file->getOwner(), //文件拥有者
        'getPath' => $file->getPath(), //不带文件名的文件路径
        'getPathInfo' => $file->getPathInfo(), //上级路径的SplFileInfo对象
        'getPathname' => $file->getPathname(), //全路径
        'getPerms' => $file->getPerms(), //文件权限
        'getRealPath' => $file->getRealPath(), //文件绝对路径
        'getSize' => $file->getSize(),//文件大小,单位字节
        'getType' => $file->getType(),//文件类型 file  dir  link
        'isDir' => $file->isDir(), //是否是目录
        'isFile' => $file->isFile(), //是否是文件
        'isLink' => $file->isLink(), //是否是快捷链接
        'isExecutable' => $file->isExecutable(), //是否可执行
        'isReadable' => $file->isReadable(), //是否可读
        'isWritable' => $file->isWritable(), //是否可写
    ));
    遍历:
    try
    { foreach(new SplFileObject('foo-bar.txt') as $line) { echo $line; } } catch (Exception $e) { echo $e->getMessage(); }
    读取制定行:
    try
    { $file = new SplFileObject('foo-bar.txt'); $file->seek(2); echo $file->current(); } catch (Exception $e) { echo $e->getMessage(); }
    写入CSV文件:
    $list
    = array ( array( 'aaa' , 'bbb' , 'ccc' , 'dddd' ), array( '123' , '456' , '7891' ), array( '"aaa"' , '"bbb"' ) ); $file = new SplFileObject ( 'file.csv' , 'w' ); foreach ( $list as $fields ) { $file -> fputcsv ( $fields ); }
    获取CSV的行数
    $csv_file = 'path/bigfile.csv';
    $spl_object = new SplFileObject($csv_file, 'rb');
    $spl_object->seek(filesize($csv_file));
    echo $spl_object->key();
    CSV大文件快速定位
    $csv_file = 'path/bigfile.csv';
    $start = 100000;  // 从第100000行开始读取
    $num = 100;    // 读取100行
    $data = array();
    $spl_object = new SplFileObject($csv_file, 'rb');
    $spl_object->seek($start);
    while ($num-- && !$spl_object->eof()) {
     $data[] = $spl_object->fgetcsv();
     $spl_object->next();
    }
    print_r($data);
  • 相关阅读:
    论文阅读 | Adversarial Example Generation with Syntactically Controlled Paraphrase Networks
    Textual Entailment(自然语言推理-文本蕴含)
    论文阅读 | Probing Neural Network Understanding of Natural Language Arguments
    BiLSTM-CRF模型理解
    论文阅读 | Text Processing Like Humans Do: Visually Attacking and Shielding NLP Systems
    论文阅读 | Universal Adversarial Triggers for Attacking and Analyzing NLP
    QA 中的对抗攻击和防御
    2010 年 10 年前的网文【我的10年计算机之路】
    IntelliJ 的搜索和全局搜索怎么用
    Spring Data 的 Pivotal GemFire 参考指南前言
  • 原文地址:https://www.cnblogs.com/isuben/p/6478894.html
Copyright © 2020-2023  润新知