[PHP-users 34555] Re: xml-rpcで返り値を変数に代入する方法をご教授ください。
尾賀著
yogpstopml @ yahoo.co.jp
2009年 4月 30日 (木) 21:18:46 JST
オガチョです。
2段階でいくなら出来ます。
ただ表示させてる変数が何なのか分かりませんので[$a]と仮定させていただきます。
注意なのですがここで言っている$aとはこの内容を表示させている(""が付いて
いるもしくは多い)のではなく内容が記録されている(""が少ないもしくは付いて
いない)ものです。
$array1 = $a[0];
$array2 = $a[1];
$blogname1 = $array1['blogName'];
$url1 = $array1['url'];
$blogname2 = $array2['blogName'];
$url2 = $array2['url'];
ここで書いてある$array1と$array2は名前が違っても問題ありません。
丸々写しても動作するように見づらくしてあります。下記に見やすくしたものを
筆記します。
$array1 = $a [0];
$array2 = $a [1];
$blogname1 = $array1 ['blogName'];
$url1 = $array1 ['url'];
$blogname2 = $array2 ['blogName'];
$url2 = $array2 ['url'];
以上です。
----- Original Message -----
送信者: php-users @ php.gr.jp
宛先: Afical <linkmaster @ afical.com>
送信日時: 2009年4月23日 17:49:07
件名: [PHP-users 34554] xml-rpcで返り値を変数に代入する方法をご教授くだ
さい。
> MT のxml-rpc機能を利用してブログの情報を取得するWebアプリを開発してお
> ります。
> PHPでXML-RPCのクライアントを作成してMTに「blogger.getUsersBlogs」を送
> 信すると
> 結果が以下のような内容でブラウザに表示されます。
> --------------------------------------------------------------------
> Array
> (
> [0] => Array
> (
> [url] => http://hogehoge.jp/blog1
> [blogName] => テストブログ1
> [blogid] => 1
> )
> [1] => Array
> (
> [url] => http://hogehoge.jp/blog2
> [blogName] => テストブログ2
> [blogid] => 2
> )
> )
> --------------------------------------------------------------------
> 私がやりたい事は、上記の結果の内容から[blogName] や[blogid] を変数とし
> て代入したいです。
> 例えば、
> $blogname1 =[0] => Array の[blogName] (上記の場合、テストブログ1)
> $url1 =[0] => Array の[url] (上記の場合、http://hogehoge.jp/blog1)
> $blogname2 =[1] => Array の[blogName] (上記の場合、テストブログ2)
> $url2 =[1] => Array の[url] (上記の場合、http://hogehoge.jp/blog2)
>
> とても簡単なことかもしれませんが、ぜひ教えてください。
> よろしくお願いいたします。
>
> --------------------------------------------------------------------
> 参考として、上記の結果を返すPHPのソースを記述いたします。
>
>
> <?php
> header("Content-Type: text/html;charset=UTF-8");
> require_once("XML/RPC.php");
> $GLOBALS['XML_RPC_defencoding'] = "UTF-8";
>
> //XML-RPCインタフェース、ユーザ定義
> $mt_host = "hogehoge.jp"; //MTのホスト情報
> $mt_xmlrpc_path = "/mt-xmlrpc.cgi"; //mt-xmlrpcまでのパス
> $mt_user = 'xxxxxx'; //MTのユーザー
> $passwd ='xxxxxxxx'; //MTのWebサービスパスワード
>
> //クライアントの作成
> $c = new XML_RPC_client( $mt_xmlrpc_path, $mt_host, 80 );
>
> $appkey = new XML_RPC_Value( '', 'string' );
> $username = new XML_RPC_Value( $mt_user, 'string' );
> $passwd = new XML_RPC_Value( $passwd, 'string' );
>
> //メッセージ作成
> $message = new XML_RPC_Message(
> 'blogger.getUsersBlogs',
> array($appkey, $username, $passwd) );
> //$message = new XML_RPC_Message('mt.supportedMethods');
>
> //メッセージ送信
> $result = $c->send($message);
>
> if( !$result ){
> exit('Could not connect to the server.');
> }else if( $result->faultCode() ){
> exit('XML-RPC fault ('.$result->faultCode().'): '
> .$result->faultString());
> }
>
> $blogs = array_map( 'array_convEnc', XML_RPC_decode( $result->value()
> ) );
> echo "<pre>";
> print_r($blogs);
> echo "</pre>";
>
> function array_convEnc($a)
> {
> if( is_array($a) ){ return array_map( 'array_convEnc', $a ); }
> return @mb_convert_encoding(
> $a, mb_internal_encoding(),
> $GLOBALS['xmlrpc_internalencoding'] );
> }
> ?>
>
>
>
>
>
> T,aoki
> linkmaster @ afical.com
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>
--------------------------------------
Power up the Internet with Yahoo! Toolbar.
http://pr.mail.yahoo.co.jp/toolbar/
PHP-users メーリングリストの案内