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月