日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

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

發布時間:2025/3/11 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php导入json文件_[php]导入超大json文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

在之前的文章《做一個twitter的插件玩玩》中,我做了一個批量刪除推文(轉發推文)的工具,該工具能夠刪除前3200條推文,但因為總數太多(4.3萬條),api接口不支持獲取所有的推文,所以我采用了下載的方式,直接下載了所有的推文。下載后需要導入到插件中,這樣可以通過插件的功能進行對應的推文操作。

可以看到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);

}

});

}

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的php导入json文件_[php]导入超大json文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。