[メモ]PHPでアップロード進捗状況がわかるらしい[未検証]

とりあえず、↓こんなのを見つけたので後で実験してみる。
セッションのアップロード状況

コレができるなら、もう少し面白そうなuploaderが作れるのでは?とか思ったりします。

追記:
php5.4.0以降から使えるのか・・・・
ちょっとめんどうなので、またの機会だな・・orz

スポンサーリンク

[メモ]mongodb:配列内の値での絞り込みの仕方

完全に自分用メモです。

mongoDBで配列内の値をキーにどうやって絞り込むか解らなかったので、調べました。
※実際に値を作ってクエリー投げてみて確認しました。

基本的にはここにすべて書かれています。
高度なクエリー-配列内の値

自分が適当に検証したのは・・

[user@servername ~]$ mongo test_db
> db.test_collection.save({a:1});
> db.test_collection.save({a:2});
> db.test_collection.save({a:3});
> db.test_collection.save({a:4});
> db.test_collection.save({a:5});
> db.test_collection.save({a:6});
> db.test_collection.save({a:7,b:[{b1:"b1_1",b2:"b1_2"},{b1:"b2_1",b2:"b2_2"}]});
> db.test_collection.save({a:8,b:[{b1:"b1_2",b2:"b1_3"},{b1:"b2_2",b2:"b2_3"}]});
> db.test_colection.find({b:{$elemMatch:{b1:"b1_1"}}});
{ "_id" : ObjectId("4febdcb92cd09b7bd6abce80"), "a" : 7, "b" : [ { "b1" : "b1_1", "b2" : "b1_2" }, { "b1" : "b2_1", "b2" : "b2_2" } ] }
>

これで見事に取得できている。。
db.test_colection.find({b:{$elemMatch:{b1:”b1_1″}}});
(結局$elemMatchを使えばよいということらしい。)

これでやっと、一つわからない部分が解決した。。
長かったなぁ・・・

スポンサーリンク

[DDNS]mydns.toは諦めた[ダメポ]

此処のところ、『mydns.to』の調子が悪く、繋がらないことが多くなってきている。
そこで、もうひとつのDDNSの『mydns.jp』に一本化しようと今日決めました。

とりあえず、wordpressのドメインを全部こちらに変更。
googleanalyticsもこちらのドメインに変更。

いい加減、独自ドメイン取得したほうが良いのかなぁ・・・

スポンサーリンク

[mixi]ミクシーページアプリ・・・[page]

お仕事関係でmixiページアプリを作ることになったよ;_;

とりあえず、個人でパートナー登録・・・
クレカがいるのかorz
とか思ったりしながら登録!

※あと、法人の場合は登記簿を郵送しないといけないとか・・・
だから敷居が高すぎてみんなやる気がなくなるんだよとか思ったりもしてる・・・
http://developer.mixi.co.jp/about-platform/com/partner/

とにかく色々触りながらやってみないとわからないコトだらけで、正直辛かった;_;
※やりたくない気持ちもあって余計・・・

とりあえず、mixiデベロッパーの仕様書?はかなり読み辛い。
まだ、Facebookのデベロッパーの方がまし。

◆mixiページアプリからの投稿は3パターン

以下に書いてある・・・
http://developer.mixi.co.jp/page-apps/spec/page-api/

methodは、POST
URLは、http://api.mixi-platform.com/2/pages/[Page-ID]/feeds
[Page-ID]はmixiページのID

1.タイトルと本文のみの投稿

Content-Type:application/json
本家でこんな風にしなよとかかれています。

{
  "contentUri" : "http://www.application.com/id=12345",
  "title" : "タイトル",
  "body" : "本文",
  "urls" : {
    "pcUrl" : "http://mixi.jp/run_page_appli.pl?page_id=0&module_id=0&appParams=%7B%22uid%22%3A%221569%22%7D",
    "mobileUrl" : "",
    "smartphoneUrl" : "",
  },
  "sourceId" : "3"
}

実際に上記のような書き方はしません。
実際は以下のような感じ

<?php
    $page_id = '123456';
    $url = 'http://api.mixi-platform.com/2/pages/' . $page_id . '/feeds';
    $arr_data = array(
        'title' => タイトル文字列,
        'body' => 本文,
    );
    $content = json_encode($arr_data);
    $opt = array(
        'http' => array(
        'method' => 'POST',
        'header' => 'Authorization: OAuth '.$access_token."\r\n".
                    'Content-Type: application/json',
        'ignore_errors'=>true,
        'content' => $content,
    ));
    $data = file_get_contents($url, false, stream_context_create($opt));
    //成功するとjson形式で返りがある
    print_r(json_decode($data, ture));
?>

2.1に加え、イメージのURL指定によるイメージの投稿

Content-Type:application/json
本家でこんな風にしなよとかかれています。

{
  "contentUri" : "http://www.application.com/id=12345",
  "title" : "タイトル",
  "body" : "本文",
  "urls" : {
    "pcUrl" : "http://mixi.jp/run_page_appli.pl?page_id=0&module_id=0&appParams=%7B%22uid%22%3A%221569%22%7D",
    "mobileUrl" : "",
    "smartphoneUrl" : "",
  },
  "sourceId" : "3",
  "imageUrls" : [
    "http://www.imageurl.com/image/photo1.jpeg"
  ]
}

実際に上記のような書き方はしません。
実際は以下のような感じ

<?php
    $page_id = '123456';
    $url = 'http://api.mixi-platform.com/2/pages/' . $page_id . '/feeds';
    $arr_data = array(
        'title' => タイトル文字列,
        'body' => 本文,
        'imageUrls' => array(
            'http://hogehoge.com/hage.jpg'
        ),
    );
    $content = json_encode($arr_data);
    $opt = array(
        'http' => array(
        'method' => 'POST',
        'header' => 'Authorization: OAuth '.$access_token."\r\n".
                    'Content-Type: application/json',
        'ignore_errors'=>true,
        'content' => $content,
    ));
    $data = file_get_contents($url, false, stream_context_create($opt));
    //成功するとjson形式で返りがある
    print_r(json_decode($data, ture));
?>

ここで気をつけなければならないところは、imageUrlsはjpgかpngでなければならないということです。しかも、拡張子がjpgかpngしかだめです(最後が.jpgまたは.pngのみ受け付ける)。プログラムから吐かれたばあいのIDなどがついている場合はm無効となります。

3.1に加え、サーバー内のローカルイメージの投稿

Content-Type:multipart/form-data
本家でこんな風にしなよとかかれています。

boundary文字列
Content-Disposition: form-data; name="request"
{
  "contentUri" : "http://www.application.com/id=12345",
  "title" : "タイトル",
  "body" : "本文",
  "urls" : {
    "pcUrl" : "http://mixi.jp/run_page_appli.pl?page_id=0&module_id=0&appParams=%7B%22uid%22%3A%221569%22%7D",
    "mobileUrl" : "",
    "smartphoneUrl" : "",
  },
  "sourceId" : "3",
}
boundary文字列
Content-Disposition: form-data; name="image1"; filename="添付画像1.jpg"
Content-Type: image/jpeg
.......添付画像のバイナリデータ

実際に上記のような書き方はしません。
実際は以下のような感じ

<?php
    $page_id = '123456';
    $url = 'http://api.mixi-platform.com/2/pages/' . $page_id . '/feeds';

    $title = 'タイトル';
    $body = '本文の内容';
    $image_file = "/tmp/hoge.jpg";

    $boundary = "".md5(microtime());

    $content = "--".$boundary."\r\n";
    $content.= 'Content-Disposition: form-data; name="request"'."\r\n";
    $content.= "\r\n";
    $content.= json_encode(
                array(
                    "title" => $title,
                    "body" => $body,
               ));
    $content.= "\r\n";
    $content.= "--".$boundary."\r\n";
    $content.= 'Content-Disposition: form-data; name="image1"; filename="' . basename($image_file) . '"'."\r\n";
    $content.= 'Content-Type: image/jpeg'."\r\n";
    $content.= "\r\n";
    $content.= file_get_contents($image_file)."\r\n";
    $content.= "--".$boundary."--";

    $opt = array(
        'http' => array(
        'method' => 'POST',
        'header' => 'Authorization: OAuth '.$access_token."\r\n".
                    'Content-Type: multipart/form-data; boundary='.$boundary;
        'ignore_errors'=>true,
        'content' => $content,
    ));
    $htp['header'] .= "\r\n".'Content-Type: application/json';
    $data = file_get_contents($url, false, stream_context_create($opt));
?>

と、こんな感じで書いて行きます。
実際はもう少しurlencodeしたりとかするんですけどね・・・

あとは、バグっぽいのが、あったけど直ったみたい??
bodyに改行コードがあると投稿できないとか・・・

 
※余談だけど、コメントの投稿でも改行コードを受け付けてくれない・・・
何故か\rははじかれないんだよね・・・でも、mixiページには、改行は反映されていないんだよね・・・ふしぎだなぁ~

スポンサーリンク