php导入json文件_[php]导入超大json文件

前言

在之前的文章《做一个twitter的插件玩玩》中,我做了一个批量删除推文(转发推文)的工具,该工具能够删除前3200条推文,但因为总数太多(4.3万条),api接口不支持获取所有的推文,所以我采用了下载的方式,直接下载了所有的推文。下载后需要导入到插件中,这样可以通过插件的功能进行对应的推文操作。

46d16f35de0624aed0fb8161f9a7a2b4.png

可以看到tweet.js还是挺大的,json这么大其实是很难处理的。数据虽然只有4万条,但解析起来是无力的。

寻找解决方案

最初的想法是自己写一个解析器,用一次就丢的那种,但是想想这样性价比太低了,以后要是又要用呢?所以就开始在gayhub上找。终于找到了一个大json解析方案:jsonstreamingparser,这是大json文件的解析,是异步的方式进行调用解析到的数据。但只是单条,通过重写listen能支持多条,当然这里已经有人写了:JsonCollectionParser

使用

数组解析的那个库需要支持的json格式,在readme.md中有介绍。

我这里主要是要用数组的方式来解析。请看下面的例子:public function myFunction(){

//从请求中获取文件信息。

if (!empty($_FILES)) {

$file = array_pop($_FILES);

if (0 == $file['error'] && is_uploaded_file($file['tmp_name'])) {

$path = $file['tmp_name'];

self::processFileAndUpdateTwitter($path);

} else {

$this->widget('Widget_Notice')->set(_t('json文件上传失败'), 'error');

}

}

}

private function processFileAndUpdateTwitter($path){

$util=$this;

$parser = new \JsonCollectionParser\Parser();

$parser->parse($path, function (array $json) use (&$util) {

//封装实体对象,落地到数据库中

if(!empty($json)){

$twitterIns=new class{};

$obj= (object)$json['tweet'];

$twitterIns->id_str=$obj->id_str;

$util->twitterHelp->addUserTimeLineTweetToDB($twitterIns);

}

});

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 生成dbf,php 读取vfp 8.0,9.0所产生的dbf文件

VFP 9.0 PHP odbc求大神指导。。。由VFP8.0以上制造的DBF文件,自带的Tabel Type> autoinc field 或者Blob field,想通过PHP读取,不行吗?代码很简单如下》$add’c://BatMan//Daten//ladert2.DBF’;$e”Driver{Microsoft Visual …

linux怎样写java代码,linux 怎么写java

linux 怎么写java一、环境安装由于使用 yum 或者 apt-get 命令 安装 openjdk 可能存在类库不全,从而导致用户在安装后运行相关工具时可能报错的问题,所以此处我们推荐采用手动解压安装的方式来安装 JDK。具体步骤如下:1.下载 JDK进入Oracle官…

java登陆密码验证失败,java用户名密码验证示例代码分享

类:NameII 权限:public方法:main 权限:public参数:name,password,denglu,i;参数介绍:name,数据类型 String ,用来存储一个从 input 中获取的值,在本程序当中用作用户名的存放;password,数据类型 String &#xf…

php 五角星,php使用GD库画五角星_PHP教程

01 $width 500;02 $height 500;0304 $im imagecreatetruecolor($width, $height);0506 $red imagecolorallocate($im, 230, 0, 0);07 imagefill($im, 0, 0, $red);0809 $yellow imagecolorallocate($im, 255, 255, 0);1011 //设定画出五角星的五个顶点形成的 正五边形的边…

java的配置文件后缀,Java - 敏感配置文件位置

0x00 前言项目中常遇到Java站点,像SSM、springboot这些框架开发的通常一些配置文件都在固定的位置,当然还有Tomcat容器的配置文件。0x01 记录1.properies配置文件这个文件的作用很重要,通常是一个JavaWeb项目中的配置文件,以.prop…

apmserv 5.2.6 升级php,APMServ5.2.6 升级PHP版本 到高版本 5.3,5.4

Thursday, December 12, 2013 1:59 AM 17173606 php-5.3.28-Win32-VC9-x86.zipranhou 然后解压,得到一个新的目录:把原来APMServ目录中的PHP目录中的:ext , extras 两个目录复制过来,遇到重复文件,不要覆盖…

php原生sql语句删除,PHP 的批量删除sql语句

PHP 的批量删除sql语句发布于 2014-10-07 22:57:44 | 92 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门…

php 正则mac地址,正则表达式匹配MAC地址、邮箱地址、IP地址

(1)匹配MAC地址1)MAC地址由12个16进制的字母组成2)16个字母是 0~9、a~f 。不区分大小写,一般为大写3)每两个字母为一组,共六组,每组间用冒号:隔开匹配思路:00:0C:29:88:83:1A1)先匹配前两个字母;用元字符[] 匹配单个字…

超级好用的一个php上传图片类(随机名_缩略图_加水印),超级好用的一个php上传图片类(随机名,缩略图,加水印)...

Upimages.class.php php上传类复制代码 代码如下:class UpImages {var $annexFolder "upload";//附件存放点,默认为:annexvar $smallFolder "small";//缩略图存放路径,注:必须是放在 $annexFolder下的子目录…

java pair class,在Java Pair Class Tuple中获取值

使用该getValueX()方法从Java的Pair Tuple类中的特定索引处获取值。例如,getValue0()。首先让我们看看使用JavaTuples所需的工具。要在JavaTuples中使用Pair类,您需要导入以下包-import org.javatuples.Pair;注-下载和运行JavaTuples程序的步骤。如果您正…

matlab读取data格式,ReadData3D 各种格式图像的读取,包括医学 效果很好 matlab 272万源代码下载- www.pudn.com...

文件名称: ReadData3D下载 收藏√ [5 4 3 2 1 ]开发工具: matlab文件大小: 51 KB上传时间: 2017-03-29下载次数: 0提 供 者: 李忠宽详细说明:各种格式图像的读取,包括医学图像的读取,效果很好-Various formats of image reading, inclu…

mysql vs2008,vs2008 使用mysql

近期转到研发岗,需要用到mysql、vs2008;之前由于没有做过,写下这篇文章记录下这周所学的东西!先安装好相关软件安装时间比较久耐心等待......安装完毕之后打开vs,Tools -> opptions ->设置完毕之后,点…

matlab pretty什么用,matlab如何使输出结果更美观(symdisp函数——pretty函数升级版)...

EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册x& t7 n0 d: a# m0 O( y- Lmatlab中有些计算结果比较长,直接查看有些困难,下面介绍pretty和symdisp函数优化输出结果,使结果更为直观。- …

基于matlab的fir数字滤波器设计开题报告,基于matlab的fir数字滤波器仿真与设计(开题报告)(共9篇).docx...

基于matlab的fir数字滤波器仿真与设计(开题报告)(共9篇) 毕业论文 开题报告 系别电子信息工程系专业电子信息工程班级学生姓名学号指导教师XXX报告日期 毕业论文开题报告表 1、课题来源 2、研究目的和意义 3、国内外研究现状和发展趋势及综述 4、本课题的主要研究内容及…

php explode 循环,PHP explode 切割字串 快速取得最後一個值

選取月份2021 年 3 月 (13)2021 年 2 月 (13)2021 年 1 月 (20)2020 年 12 月 (24)2020 年 11 月 (20)2020 年 10 月 (19)2020 年 9 月 (22)2020 年 8 月 (21)2020 年 7 月 (23)2020 年 6 月 (20)2020 年 5 月 (20)2020 年 4 月 (19)2020 年 3 月 (22)2020 年 2 月…

php 留言板项目 ajax,PHP Ajax留言板

本案例代码已经提供下载,点击这里!AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式。Ajax的核心是JavaScript对象XmlHttpRe…

php如何设计自定义模型,php – Kohana ORM模型中的自定义方法

我有这两个模型:class Model_user extends ORM {protected $_has_many array(credits, array(model>credit, foreign_key>user));}class Model_credit extends ORM {protected $_belongs_to array(user, array(model>user, foreign_key>user));protec…

php过滤掉不乱码json,PHP JSON编码后,中文乱码的解决方式

1,有些时候,需要写接口,传递一些中文值,那么JSON编码,会出现目前以下两种情况!a.输出乱码$testJSONarray(name>中文字符串,value>test);echo json_encode($testJSON);?>输出结果:{“n…

php 遮罩层,Jquery实现遮罩层的方法

本文实例讲述了Jquery实现遮罩层的方法。分享给大家供大家参考。具体如下:1、假设#main为页面body中的最外层Div标签2、背景被遮罩后,显示的弹出窗(默认是不显示的,所包含的CSS这里就不贴了):xAttention!3、在script.js中定义遮罩…

php中append,插入节点append()、insertAfter()的特殊用法:对原有DOM元素进行移动

插入节点的方法: append()/appendTo()、prepend()/prependTo()、after()/insertAfter()、before/insertBefore()这些插入节点的方法不仅能将新创建的DOM元素插入到文档中,也能对原有的DOM元素进行移动(若对已在文档中存在的元素使用插入节点的方法则相当于执行“移动…