前提・実現したいこと
twitter api でデータを取得してjsonに保存したあと、php-mecabを使ってtextの部分だけ取り出して解析し出力させたいです。
配列で指定して表示させたいのですが、下記のコードじゃもちろん出力されませんでした
Illegal string offset となり、取り出し方が分かりません。
該当のソースコード
mecab.php
1<?php 2 3$file = file_get_contents("tweets.json"); 4$text = file['statuses'][0]['text']; 5$options = array('-d', '/usr/local/lib/mecab/dic/mecab-ipadic-neologd'); 6 7$mecab = new \MeCab\Tagger($options); 8$nodes = $mecab->parseToNode($text); 9var_dump($nodes); 10foreach ($nodes as $n) 11{ 12 13 echo $n->getSurface() . "<br />"; 14 echo $n->getFeature() . "<br />"; 15} 16?> 17
tweets.json
1{ 2 "statuses": [ 3 { 4 "created_at": "Thu Oct 03 04:51:38 +0000 2019", 5 "id": 1179619999343734784, 6 "id_str": "1179619999343734784", 7 "text": "東京都文京区本郷七丁目三-一\n東京大学がある", 8 "truncated": false, 9 "entities": { 10 "hashtags": [ 11 { 12 "text": "", 13 "indices": [ 14 0, 15 7 16 ] 17 } 18 ], 19 "symbols": [], 20 "user_mentions": [], 21 "urls": [] 22 }, 23 "metadata": { 24 "iso_language_code": "ja", 25 "result_type": "recent" 26 }, 27 "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>", 28 "in_reply_to_status_id": null, 29 "in_reply_to_status_id_str": null, 30 "in_reply_to_user_id": null, 31 "in_reply_to_user_id_str": null, 32 "in_reply_to_screen_name": null, 33 "user": { 34 "id": , 35 "id_str": "", 36 "name": "", 37 "screen_name": "", 38 "location": "", 39 "description": "", 40 "url": null, 41 "entities": { 42 "description": { 43 "urls": [] 44 } 45 }, 46 "protected": false, 47 "followers_count": 1, 48 "friends_count": 3, 49 "listed_count": 0, 50 "created_at": "", 51 "favourites_count": 1, 52 "utc_offset": null, 53 "time_zone": null, 54 "geo_enabled": false, 55 "verified": false, 56 "statuses_count": 85, 57 "lang": null, 58 "contributors_enabled": false, 59 "is_translator": false, 60 "is_translation_enabled": false, 61 "profile_background_color": "F5F8FA", 62 "profile_background_image_url": null, 63 "profile_background_image_url_https": null, 64 "profile_background_tile": false, 65 "profile_image_url": "http://pbs.twimg.com/profile_images/1075989853701984256/cfTYj2mr_normal.jpg", 66 "profile_image_url_https": "https://pbs.twimg.com/profile_images/1075989853701984256/cfTYj2mr_normal.jpg", 67 "profile_link_color": "1DA1F2", 68 "profile_sidebar_border_color": "C0DEED", 69 "profile_sidebar_fill_color": "DDEEF6", 70 "profile_text_color": "333333", 71 "profile_use_background_image": true, 72 "has_extended_profile": true, 73 "default_profile": true, 74 "default_profile_image": false, 75 "following": false, 76 "follow_request_sent": false, 77 "notifications": false, 78 "translator_type": "none" 79 }, 80 "geo": null, 81 "coordinates": null, 82 "place": null, 83 "contributors": null, 84 "is_quote_status": false, 85 "retweet_count": 0, 86 "favorite_count": 0, 87 "favorited": false, 88 "retweeted": false, 89 "lang": "ja" 90 }, 91
発生している問題・エラーメッセージ
var_dumpの結果 object(MeCab\Node)#2 (0) { } BOS/EOS,*,*,*,*,*,*,*,* f 名詞,固有名詞,組織,*,*,*,* BOS/EOS,*,*,*,*,*,*,*,*
Illegal string offset 'statuses' in /var/www/html/mecab.php on line 7 PHP Warning: Illegal string offset 'text' in /var/www/html/mecab.php on line 7
補足情報(FW/ツールのバージョンなど)
phpv7.0.33
ubuntu16.04
回答1件
あなたの回答
tips
プレビュー