PHPからActionScript3.0へ配列になった値の受け渡しについて質問があります。DBから抽出された配列の値をActionScript側で読み込むための「名前=値」のペアの文字列を作成する方法、「名前=値&&名前=値&...」の渡し方に親子関係(Array [0]=>Array([id]=>0,[name]=>A,[type]=>AB,...)[1]=>Array([id]=>2,[name]=>B,[type]=>B,...))のような関係)を維持して値を受け渡す方法は可能でしょうか?左記のような、DBから抽出された配列データ、親と入れ子が繰り返されたデータを受け渡す方法をご存知の方…基本的な質問で大変、恐縮ですがご教授いただけると助かります。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/10/23 04:53:16
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

ポイント100pt

受け取り手もphpであればserializeというもので変換して送るという手が使えて簡単

http://php.net/manual/ja/language.oop5.serialization.php

 

しかしながら受け取り手はActionScriptなので、

一般的に使われているJSONやXMLなどのデータ形式で受け渡しすることになるでしょう

 

php側でJSON形式にする関数json-encode

http://www.php.net/manual/ja/function.json-encode.php

urlencodeもお忘れなく

 

ActionScript側でJSON形式から展開するライブラリas3corelib

http://d.hatena.ne.jp/sukesam/20071019/1192723350

http://code.google.com/p/as3corelib/

 

以上、参考まで

他6件のコメントを見る
id:DrArabes

文字化けてはいないのですが…TypeError: Error #1009: nullがはきだされ…PHP側でurlencode($dom);echo ($dom);としたのですが…パブリシュしても同様のエラーがはかれ、traceできなくて困っている状況です。

2011/10/25 01:45:50
id:DrArabes

追記)PHP側でXMLをURLエンコードしましたが…URLリクエストはNULLでした。なぜなのでしょう?POSTした戻り値がNull… PHP側では変数を一塊にしたのですが解決できませんでした。

2011/10/25 03:55:49

その他の回答1件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149ここでベストアンサー

ポイント100pt

受け取り手もphpであればserializeというもので変換して送るという手が使えて簡単

http://php.net/manual/ja/language.oop5.serialization.php

 

しかしながら受け取り手はActionScriptなので、

一般的に使われているJSONやXMLなどのデータ形式で受け渡しすることになるでしょう

 

php側でJSON形式にする関数json-encode

http://www.php.net/manual/ja/function.json-encode.php

urlencodeもお忘れなく

 

ActionScript側でJSON形式から展開するライブラリas3corelib

http://d.hatena.ne.jp/sukesam/20071019/1192723350

http://code.google.com/p/as3corelib/

 

以上、参考まで

他6件のコメントを見る
id:DrArabes

文字化けてはいないのですが…TypeError: Error #1009: nullがはきだされ…PHP側でurlencode($dom);echo ($dom);としたのですが…パブリシュしても同様のエラーがはかれ、traceできなくて困っている状況です。

2011/10/25 01:45:50
id:DrArabes

追記)PHP側でXMLをURLエンコードしましたが…URLリクエストはNULLでした。なぜなのでしょう?POSTした戻り値がNull… PHP側では変数を一塊にしたのですが解決できませんでした。

2011/10/25 03:55:49
id:romer No.2

回答回数3ベストアンサー獲得回数1

ポイント50pt

XMLあたりが一番いいのではないでしょうか。

PHP側はPEARのXML_Serializerあたりを使えば簡単にオブジェクトや配列からXML化する事ができます。

http://pear.php.net/package/XML_Serializer/

またJSONという形式もありだと思います。

PHP側の実装はPHP5以降ならjson_encode使うだけなのでこちらも楽です。

ただFlash側でコンパイル時にライブラリへのリンクが必要なようです。

http://d.hatena.ne.jp/sukesam/20071019/1192723350

id:romer

XMLを第一に押したのは、AS側で追加する必要が無いためです。

個人的にはJSONの方が扱いやすいとは思います。

あとXML化する方法ですが、書かかれているdump_memは、

DOMを構築した後に書き出す物なので今回考えられている用途にはあわないと思います。

紹介したXML_Serializerであれば

$serializer = &new XML_Serializer();

$serializer->serialize($data);

$serializer->getSerializedData()

この3行ですみます。

serializeの戻り値はboolで、XML化できるかできないかの判断ができます。

getSerializedDataを実行し取得した値がXMLしたデータです。

$dataにはXML化したいデータを入れてください。

またSerializerのオブジェクトを生成する時に様々なオプションが設定できます。

オプションに設定できるキーは以下を参照してください。

http://pear.php.net/manual/en/package.xml.xml-serializer.constants.php

オプションはsetOptionメソッドを使って途中で変更する事もできます。

$opt = array (

XML_SERIALIZER_OPTION_INDENT => "\t",

XML_SERIALIZER_OPTION_LINEBREAKS => "\n"

);

$serializer = &new XML_Serializer($opt);

この例はインデント時にタブを指定し、改行コードにLFを指定している事になります。

視認しやすくなる設定です。

2011/10/24 14:32:55

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません