質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

723閲覧

phpにて文字列の値の取得方法が分からない。

ryoooos

総合スコア11

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/05/07 11:19

編集2020/05/07 12:03

phpで文字列の一部の値を取得したいのですが、取得方法が分からないため、質問させて頂きます。

文字列というのは、以下の通りです。
イメージ説明

この画像のうち、4段目にあるlocationというキーの、"lat" 33.53----, "lng": 130.----のバリュー部分を取得したいです。
この文字列は、Google maps apiを使用して、取得したものです。以下のようなリクエストです。

action

1$geo = GoogleMaps::load('geocoding')->setParam(["address" => "fukuoka"])->get();

この変数$geoを、テンプレートで表示すると、上記の文字列が返ってきます。
変数$geoに対して、様々メソッドを繋げて試したのですが、うまく取得できませんでした。
どのようにすれば、キーlocationのバリューを取得できるのでしょうか?
解決策をご存知の方がいらっしゃれば、教えていただきたいです。
よろしくお願い致します。

===追記
失礼しました。
テキストは追加します。
型は文字列型です。

"alexpechkarev/google-maps"というライブラリを使用して、Google Maps APIを使っています。
ライブラリのgithubは以下の通りです。
https://github.com/alexpechkarev/google-maps

このライブラリを使用して、

$geo = GoogleMaps::load('geocoding')->setParam(["address" => "kasuga"])->get();

というメソッドチェーンにて値を取得し、表示させたものが以下の表示結果です。

{ "results" : [ { "access_points" : [], "address_components" : [ { "long_name" : "Kasuga", "short_name" : "Kasuga", "types" : [ "locality", "political" ] }, { "long_name" : "Fukuoka", "short_name" : "Fukuoka", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "Japan", "short_name" : "JP", "types" : [ "country", "political" ] } ], "formatted_address" : "Kasuga, Fukuoka, Japan", "geometry" : { "bounds" : { "northeast" : { "lat" : 33.548981, "lng" : 130.4794599 }, "southwest" : { "lat" : 33.498713, "lng" : 130.4338969 } }, "location" : { "lat" : 33.5326117, "lng" : 130.4705019 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 33.548981, "lng" : 130.4794599 }, "southwest" : { "lat" : 33.498713, "lng" : 130.4338969 } } }, "place_id" : "ChIJbX4pU7GQQTURTmRqK7X1ql0", "types" : [ "locality", "political" ] } ], "status" : "OK" }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/05/07 11:53

画像ではなくテキストで提示してください
m.ts10806

2020/05/07 11:54

そもそも提示されている情報(画像)の型は何でしょうか どうやったらこの内容が出力されたのでしょうか。 画像ではなくテキストでコピペで提示してください。
m.ts10806

2020/05/07 12:12

>表示させた その「表示させた」コードを提示いただきたいのですけど。 var_dump()ですか? でしたら型とか桁数とか出るはずです。 それともechoですか? 「コード」「表示された情報」そのまま提示してください。
ryoooos

2020/05/07 12:22

本当ですね。勉強になりました。ありがとうございました。
guest

回答2

0

ベストアンサー

それはjson。一目見て分からないなら基本的な知識が足りてないのでもっと基礎から学習したほうがいい。
jsonは今後もずっと見ることになる。

json_decode()で配列かオブジェクトに変換すればどうとでも扱える。
https://www.php.net/manual/ja/function.json-decode.php

投稿2020/05/07 12:02

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryoooos

2020/05/07 12:11

json_decodeを使い、試してみます。 ありがとうございました。
guest

0

jsonデータとして必要な部分を再帰的に取得すればいいでしょう

追記

PHP

1$str='{ "results" : ・・・ }'; 2$json=json_decode($str,JSON_OBJECT_AS_ARRAY); 3$location=$json["results"][0]["geometry"]["location"]; 4print_r($location);

投稿2020/05/07 11:54

編集2020/05/07 12:13
yambejp

総合スコア114915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryoooos

2020/05/07 12:10

ありがとうございます。 jsonデコードで試してみます。
ryoooos

2020/05/07 12:21

追記ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問