perl で XMLRPC::Data->type arrayをどうする
XMLRPCでワードプレス(WP,Wordpress)ブログに投稿してやろうと思ったのね?
通常は、こうやる。
$result = XMLRPC::Lite
-> proxy($endpoint)
-> call('metaWeblog.newPost', $blogid, $username, $password,
{
#-- ブログ記事タイトル
'title' => XMLRPC::Data->type('string', "タイトル"),
#-- ブログ記事本文
'description' => XMLRPC::Data->type('string', "本文"),
#-- ブログ記事本文(タグ)
'mt_keywords' => XMLRPC::Data->type('string', "タグ"),
#-- コメントステータス 0:off 1:on
'mt_allow_comments' => $postcmnt,
#-- PINGステータス
'mt_allow_pings' => $postping,
},
1
)
-> result;
※$postcmnt $postping には、1または0が入る
でもさ、これだと未定義のカテゴリーに投稿されてしまう。
だから、categories ってやつに値を入れてやるのはわかると思うだけど、
array って形で吐き出さないといけないのさ。
phpでは山のように情報がある。
'categories' => array("カテゴリー1","カテゴリー1"),
とかってね?
perl でどうやるのよって話さ。
こういうことは結論を見たいと思うので即答。
こう書く。もちろん全角文字はUTF8に変換すべし。そこは調べたまえ、直ぐ見つかる。
push(@ctgr,"カテゴリー1");
push(@ctgr,"カテゴリー2");
@ctgr_str=();
foreach(@ctgr){
push(@ctgr_str,XMLRPC::Data->type('string', $_));
}
$result = XMLRPC::Lite
-> proxy($endpoint)
-> call('metaWeblog.newPost', $blogid, $username, $password,
{
#-- ブログ記事タイトル
'title' => XMLRPC::Data->type('string', "タイトル"),
#-- ブログ記事本文
'description' => XMLRPC::Data->type('string', "本文"),
#-- ブログ記事本文(タグ)
'mt_keywords' => XMLRPC::Data->type('string', "タグ"),
#-- コメントステータス 0:off 1:on
'mt_allow_comments' => $postcmnt,
#-- PINGステータス
'mt_allow_pings' => $postping,
#-- categoriesステータス
'categories' => [@ctgr_str],
},
1
)
-> result;
知りたいだろうことのまとめ。
Q,arrayはどうする?
A,配列に入れて [@配列]って感じで指定する
Q,所属させたいカテゴリーはどう指定する?
A,カテゴリー名(もろカテゴリーの名前)を複数で指定する
ついでに
$result = XMLRPC::Lite
-> proxy($endpoint)
-> call($WPcmd, $blogid, $username, $password,
{
},
1
)
-> result;
};
tracesub(“resultX=$result”);
foreach( @$result ){
%tmp = %$_;
$catid =$tmp{“categoryId”};
$catname =$tmp{“categoryName”};
$catnameV=$catname;
$catnameV=strcode_conv(‘utf8N2sjis’,$catnameV);
tracesub(“—————–“);
tracesub(“$catid)P=$catname”);
tracesub(“$catid)V=$catnameV”);
}
※tracesub ってのは、実行ログを表示させるオリジナルモジュールです。
全角は UTF8N で戻ってくるのでソースが shift-jis ならば、文字列変換が必要。
オリジナルモジュールにしてあるけど、実際はこう書く。
use Encode;
$catnameV=encode(‘shiftjis’, decode(‘utf8’, $catnameV));
これで拾ったカテゴリーをそのまま使って投稿してあげればいいってことだ。
とにかく、猫も杓子も php でとっても困る。
perl 使いの役に立てたら幸いです。
cpan から perl のライブラリ拾ってきて、
ディレクトリに保存しておく。
それを仮に mycpanってところに保存したら、こう書く。
#
# mypcan
# |
# +—XMLRPC
# | |
# | +—Lite.pm
use lib qw(./mycpan);
use XMLRPC::Lite;
    
通常は、こうやる。
$result = XMLRPC::Lite
-> proxy($endpoint)
-> call('metaWeblog.newPost', $blogid, $username, $password,
{
#-- ブログ記事タイトル
'title' => XMLRPC::Data->type('string', "タイトル"),
#-- ブログ記事本文
'description' => XMLRPC::Data->type('string', "本文"),
#-- ブログ記事本文(タグ)
'mt_keywords' => XMLRPC::Data->type('string', "タグ"),
#-- コメントステータス 0:off 1:on
'mt_allow_comments' => $postcmnt,
#-- PINGステータス
'mt_allow_pings' => $postping,
},
1
)
-> result;
※$postcmnt $postping には、1または0が入る
でもさ、これだと未定義のカテゴリーに投稿されてしまう。
だから、categories ってやつに値を入れてやるのはわかると思うだけど、
array って形で吐き出さないといけないのさ。
phpでは山のように情報がある。
'categories' => array("カテゴリー1","カテゴリー1"),
とかってね?
perl でどうやるのよって話さ。
こういうことは結論を見たいと思うので即答。
こう書く。もちろん全角文字はUTF8に変換すべし。そこは調べたまえ、直ぐ見つかる。
push(@ctgr,"カテゴリー1");
push(@ctgr,"カテゴリー2");
@ctgr_str=();
foreach(@ctgr){
push(@ctgr_str,XMLRPC::Data->type('string', $_));
}
$result = XMLRPC::Lite
-> proxy($endpoint)
-> call('metaWeblog.newPost', $blogid, $username, $password,
{
#-- ブログ記事タイトル
'title' => XMLRPC::Data->type('string', "タイトル"),
#-- ブログ記事本文
'description' => XMLRPC::Data->type('string', "本文"),
#-- ブログ記事本文(タグ)
'mt_keywords' => XMLRPC::Data->type('string', "タグ"),
#-- コメントステータス 0:off 1:on
'mt_allow_comments' => $postcmnt,
#-- PINGステータス
'mt_allow_pings' => $postping,
#-- categoriesステータス
'categories' => [@ctgr_str],
},
1
)
-> result;
知りたいだろうことのまとめ。
Q,arrayはどうする?
A,配列に入れて [@配列]って感じで指定する
Q,所属させたいカテゴリーはどう指定する?
A,カテゴリー名(もろカテゴリーの名前)を複数で指定する
ついでに
perl での カテゴリーの一覧取得
eval{$result = XMLRPC::Lite
-> proxy($endpoint)
-> call($WPcmd, $blogid, $username, $password,
{
},
1
)
-> result;
};
tracesub(“resultX=$result”);
foreach( @$result ){
%tmp = %$_;
$catid =$tmp{“categoryId”};
$catname =$tmp{“categoryName”};
$catnameV=$catname;
$catnameV=strcode_conv(‘utf8N2sjis’,$catnameV);
tracesub(“—————–“);
tracesub(“$catid)P=$catname”);
tracesub(“$catid)V=$catnameV”);
}
※tracesub ってのは、実行ログを表示させるオリジナルモジュールです。
全角は UTF8N で戻ってくるのでソースが shift-jis ならば、文字列変換が必要。
オリジナルモジュールにしてあるけど、実際はこう書く。
use Encode;
$catnameV=encode(‘shiftjis’, decode(‘utf8’, $catnameV));
これで拾ったカテゴリーをそのまま使って投稿してあげればいいってことだ。
とにかく、猫も杓子も php でとっても困る。
perl 使いの役に立てたら幸いです。
XMLRPCも使えない telnet も使えないサーバーで XMLRPCを使うには
サーバーによっては使えないかもしれないけど、最近は使えるサーバーが多くなってきた。cpan から perl のライブラリ拾ってきて、
ディレクトリに保存しておく。
それを仮に mycpanってところに保存したら、こう書く。
#
# mypcan
# |
# +—XMLRPC
# | |
# | +—Lite.pm
use lib qw(./mycpan);
use XMLRPC::Lite;
プロフィール			
		
		
		最近の投稿
		
		カテゴリー
			
- 稼げるサイトを作るコツ
 - ご購入者様専用ページ
 - ゆずまるオリジナルツール
 - コピーライティング
 - ステップ型アフィリ習得ASB48
 - ブルートフォースアタック
 - プログラマ雑学
 - メールブログ開設ツール メブクリ
 - ワードプレス
 - ワードプレス専用エディタ WordPressPost
 - 人情PPC
 - 教材レビュー評価一覧
 - 無料レポート
 - 未分類
 - AQUAS
 - ARM-S
 - B-tube-MAX
 - Easy eCover Creator
 - Easy・Easy・Easy
 - KAETEN
 - PPC教材レビュー一覧
 - SIRIUS(シリウス)
 - お勧め優良商材一覧
 - せりどの錬金術師
 - どんどんブログ応援団
 - ゆずまるカバーG
 - アフィリエイトファクトリー
 - アメブロでザクザク(zaqzaq)稼ぐ
 - アンリミテッドアフィリエイト
 - イメージチェックアフィリエイト
 - イージークリックカウンター
 - カウンセリングライティング
 - クイック3Dカバー
 - クロスメディア・アフィリエイト
 - クールでかっこいいMTテーマ
 - シナリエイト
 - シンプルショッピングアフィリエイト
 - ダウンロード
 - チョコラビ5
 - ツール商材レビュー一覧
 - ドアノッカー(DOOR KNOCKER)
 - パワーアフィリエイト
 - パーフェクトトレジャー
 - ブルーオーシャンPPC
 - ブログモ
 - ブログ投稿っち
 - メルマガ配信ツールメガまる
 - モーションダイブ
 - ランディングページビルダー
 - ルーキーズアフィリエイト
 - 携帯サイト量産ツールモバポン
 - 新・魔法のコピーライティング
 - 最新まぁまぁ情報商材一覧
 - 楽販アフィリオ
 - 疾風アフィリエイト
 - 稼げない/購入してはいけない教材
 - 賢者のSEO
 - 0から始めて毎月30万~を稼ぐ、資料請求・無料系アフィリエイト術
 
- 2017年6月
 - 2017年4月
 - 2017年3月
 - 2016年5月
 - 2015年8月
 - 2015年5月
 - 2015年4月
 - 2015年3月
 - 2015年2月
 - 2015年1月
 - 2014年12月
 - 2014年10月
 - 2014年9月
 - 2014年7月
 - 2014年4月
 - 2014年3月
 - 2014年2月
 - 2014年1月
 - 2013年12月
 - 2013年11月
 - 2013年10月
 - 2013年9月
 - 2013年8月
 - 2013年7月
 - 2013年6月
 - 2013年5月
 - 2013年4月
 - 2013年3月
 - 2013年2月
 - 2013年1月
 - 2012年12月
 - 2012年11月
 - 2012年10月
 - 2012年9月
 - 2012年8月
 - 2012年7月
 - 2012年6月
 - 2012年5月
 - 2012年4月
 - 2012年3月
 - 2012年2月
 - 2012年1月
 - 2011年12月
 - 2011年11月
 - 2011年10月
 - 2011年9月
 - 2011年8月
 - 2011年7月
 - 2011年6月
 - 2011年5月
 - 2011年4月
 - 2011年3月
 - 2011年2月
 - 2011年1月
 - 2010年12月
 - 2010年11月
 - 2010年10月
 

		
