• ベストアンサー

レスポンスから値を取得したい

PHPであるWebサービスにリクエストしたら以下のようなレスポンスが返ってきました。 var_exportとvar_dumpで出力した例は以下のとおりですが、この中から要素idの値(test1234)を取得するにはどのようにしたら良いのでしょうか? ■var_exportで出力した場合  API\Data\Response::__set_state(array('attributes' => array ('id' => 'test1234', …))) ■var_dumpで出力した場合  object(API\Data\Response)[20]   protected 'attributes' =>    array (size=9)     'id' => string 'test1234' (length=8)     … ※「API\Data\Response」の\は実際にはバックスラッシュです。 どうぞよろしくお願い致します。

  • suffre
  • お礼率76% (2013/2633)
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.1

attributesプロパティがprotectedなので普通のプロパティ参照では取り出せません。Responseクラスに「getId」といったメソッドが必ず用意されているはずです。そのクラスの説明書をちゃんと読んでください。

suffre
質問者

お礼

実は説明書やマニュアルには書いていなかったのでわからなかったのですが、ソースコードを見たらそのようなクラスのメソッドがありました。 とても助かりました、どうもありがとうございます!

関連するQ&A

  • [PHP]ループ内の配列取得、表示について

    質問させていただきます。 データをDBから取得しwhileで全てのデータを配列として出力しているとします。 (whileの中で出力し、3つのデータがあるため3回ループされている) 結果 array(1) { [0]=> string(5) "17:10" } array(2) { [0]=> string(5) "17:10" [1]=> string(5) "17:25" } array(3) { [0]=> string(5) "17:10" [1]=> string(5) "17:25" [2]=> string(5) "11:15" } 現在の出力内容は、 var_dump[$hoge[0]] 出力結果 string(5) "17:10" string(5) "17:10" string(5) "17:10" var_dump[$hoge[1]] 出力結果 NULL string(5) "17:25" string(5) "17:25" var_dump[$hoge[2]] 出力結果 NULL NULL string(5) "11:15" という出力になっていますが、最後のarray(3)の部分だけを抜き出したいです。 その場合はどのようにすればよいのでしょうか? -理想の結果- 利用したいのはarray(3)の部分だけ。 var_dump[$hoge[0]] "17:10" var_dump[$hoge[1]] "17:25" var_dump[$hoge[2]] "11:15" 説明不足かもしれませんが、よろしくお願いいたしますm(_ _)m

    • ベストアンサー
    • PHP
  • [php]mysqlデータ配列取得について

    お世話になります。検索しても中々辿り着けなかったので質問させていただきます。 途中から //mysqlより全データ検索 $result = mysql_query('SELECT id FROM hoge ORDER BY id'); //添字配列として全データ取得   while($row = mysql_fetch_row($result)){ //ここの処理で$rowの配列を一行の配列として足していきたい。 var_dump($row); print('<br />');   } 現在の出力内容は array(1) { [0]=> string(1) "5" } array(1) { [0]=> string(1) "6" } array(1) { [0]=> string(1) "7" } array(1) { [0]=> string(1) "8" } こうした形で出力されます。 理想の出力内容は各arrayを足して、 array(4) { [0]=> string(1) "5" [1]=> string(1) "6" [2]=> string(1) "7" [3]=> string(1) "8"} 一行として出力したいのですが、一向にできる気配がありません。 初歩的なものだと思いますが、とても困ってます。何卒よろしくお願いいたしますm(_ _)m

    • ベストアンサー
    • PHP
  • PHPの配列データの出力方法について

    CSVデータをインポート後に、array関数などで処理した後、 処理したデータを順次表示したいのですが、上手くいきません。 現在は、 foreach (func_get_args($csv_output) as $v) ; var_export($v); と記述しているのですが、これだとarrayが画面に出てしまいます。 print、echoだと表示が出来ず、 print_r、var_dumpだとvar_exportより少し多めに余計な表示が出てしまいます。

    • ベストアンサー
    • PHP
  • PHPでのRAWデータの受け取り方

    こんにちわ。 PHPについて質問させて下さい。 PEARのHTTP_RequestのaddRawPostData()でXML文書をmessage bodyに突っ込んで POSTメソッドで投げて、受ける側ではPOSTで取得しているのですが、 $_POSTでmessage bodyを受け取った場合、 var_dump($_POST); 出力: array(1) { ["<entry_xmlns=\"ttp://purl_org/atom/ns#\">postのテスト</entry>"]=> string(0) "" } などとなり、 message bodyの内容が無条件に$_POSTのキーになり、 「空白」であるところが「_(アンダーバー)」に変換されてしまいます。 APIを通常のPOSTやGETデータでつついてレスポンスのXMLを受け取ってパース・・・というのはよくやっているのですが、 XMLで受け取るAPIをPHPで作った事が無かったのでどうにも知識不足です。 そもそもこのやり方でいいんだろうか。 どなたかご教授ください。

    • 締切済み
    • PHP
  • PHPがHTMLのformの値を受け取らない

    状況: ファイルアップロードを作成しようとしたところPHPがHTMLのformのsubmitした物を受け取らない。 しかしHTML側にjavascriptを読み込ませ XMLHttpRequest によってsendすると受け取れる。 環境: apache 2.2.4 php 5.2.3 ------------HTML <html><body> <form action="test.php" enctype="multipart/form-data"> <input type="text" id="name"> <input type="file" id="file"> </form> </body></html> ------------PHP <?php header('Content-type: text/plain; charset=UTF-8'); print "\$_POST:";var_dump($_POST);print "\n"; print "\$_FILES:";var_dump($_FILES);print "\n"; ?> ------------結果 $_POST:array(0) { } $_FILES:array(0) { } ------------ 原因がphp.iniなのか、httpd.confなのか、はたまたそれ以外に原因があるのかがさっぱり判らず質問しました。 どうやったらHTMLのformの値をPHPで受け取れますか?

  • PerlでMySQLのテーブル一覧取得

    PerlでMySQLのデータベース内のテーブル一覧を取得することはできますか? 自分で以下の様なサブルーチンを作りましたが、返り値に何も入っていませんでした。 コマンドラインでもshow tables;で確認したのでテーブルは確実に存在します。 接続も showでfetchrow_arrayなどは使えないのでしょうか? またselect文でテーブル一覧を取得する方法がありましょうか? Error: failed to connect to DB.とは出てこないので、接続も成功しています。 sub mysql_tablesGet{ my @data=@_; my $db_id = $data[0]; my $db_password = $data[1]; my $dbh = DBI->connect("dbi:mysql:dbname=".$ftp_id.";host=$mysql_host", $db_id,$db_password) or die "$!\n Error: failed to connect to DB.\n"; my $sth = $dbh->prepare("show tables;"); $sth->execute; my @response; my $i=0; while(my @var = $sth->fetchrow_array){ my ($table_name) = $var[0]; $response[$i] = $table_name; $i++; } $dbh->disconnect; return @response; } MySQLのログはこんなのが出ています。 130406 17:11:44 70 Connect test2@192.168.11.22 on test2 70 Query set autocommit=1 特にエラーは出ていないので、show tables;は成功していると思います。

    • ベストアンサー
    • Perl
  • インポートできない。

    あるテーブルのデータをダンプしてエクスポート(export_utf8.sql)しました。 それを他のMysqlへインポートしようと以下のコマンドを実行したところ、 mysql -p --default-character-set=utf8 db < export_utf8.sql 以下のエラーが出力されました。 Unknown MySQL server host 'border="1"' (1) おそらく、エスケープ関連でコケているものかと思いますが、 どうすればインポートできるのかわかりません。 ご存知の方、宜しくお願いします。

    • ベストアンサー
    • MySQL
  • googleカレンダーapiでタイムアウト

    2年程前からgoogleカレンダーと連携した社内アプリを作成して運用しています。 googleカレンダーからデータ取得処理を1日平均して200回程度行っているのですが今年の2月以降タイムアウトエラーが1日当たり1~3回程度発生する様になりました。 再度取得処理を行えば問題無く取得出来る様です。 特にgoogleカレンダー側で障害が発生しているとも思えないのですが、何が考えられますでしょうか プログラム側でタイムアウト時に数回のリトライ処理を実装する等の対策を行うくらいしか 無いのでしょうか? 以下環境です CentOS 7.4.1708 Apache 2.4.6 PHP 5.6.37 google-api-php-client-2.2.2 以下エラー発生時のログの一部となります。 [29-Feb-2020 15:18:39 Asia/Tokyo] 作成したPHPのID.PHP:Google_IO_Exception Object ( [retryMap:Google_IO_Exception:private] => Array ( [6] => -1 [7] => -1 [28] => -1 [35] => -1 [52] => -1 ) [message:protected] => Operation timed out after 100001 milliseconds with 0 out of -1 bytes received [string:Exception:private] => [code:protected] => 28 [file:protected] => /var/data/google-api-php-client/src/Google/IO/Curl.php [line:protected] => 126 [trace:Exception:private] => Array ( [0] => Array ( [file] => /var/data/google-api-php-client/src/Google/IO/Abstract.php [line] => 136 [function] => executeRequest [class] => Google_IO_Curl [type] => -> [args] => Array ( [0] => Google_Http_Request Object ( [batchHeaders:Google_Http_Request:private] => Array ( [Content-Type] => application/http [Content-Transfer-Encoding] => binary [MIME-Version] => 1.0 ) [queryParams:protected] => Array ( [maxResults] => 5000 [orderBy] => startTime [singleEvents] => true [timeMin] => 2020-02-22T00:00:00+09:00 [timeMax] => 2020-09-03T00:00:00+09:00 ) [requestMethod:protected] => GET [requestHeaders:protected] => Array

  • 配列の出力方法について(クラス?)

    お世話になります。 $_SESSION['test']をvar_dumpで出力した際に、 ["items":"Test":private]=>array(1) {[0]=>string(3) "100" } といった値がありましたがこれをechoすることは可能でしょうか? $_SESSION['test']['items']['Test']['0']といったように・・・ 大変初歩的な質問かと思いますがよろしくお願い致します(x_x)

    • ベストアンサー
    • PHP
  • javascriptでlabelの値取得

    vs2012(c#)で <asp:Label ID="test" runat="server" Text="abc" Visible="true"></asp:Label> の値をjavascriptで取得したいのですが、下記で実行すると l1はnullになり取得できません。 var l1 = document.getElementById("test"); var data = l1.innerText; console.log(data); そのようにすれば取得できるでしょうか