http://drupal.org/node/277619に書かれているtumblrのフォトギャラリーを使いたいなと思います。

しかし自分が借りているレンタルサーバーにインストールされたPHPのバージョンが5.1.4なのでJSONが使えない状態です。

サーバーにはFTPでの接続しか許可されていない状況なのですが、ググってみたところZend Frameworkという存在を知りました。
これを使ってDisplay photos from Tumblrを使用することはできますでしょうか?
「Zend Frameworkはそういうもんじゃないんだよ坊や」という事かもしれませんが、
こうすればいけますよとコードが書けちゃう方は是非とも教えて下さい。

回答の条件
  • 1人2回まで
  • 登録:2010/01/03 22:59:38
  • 終了:2010/01/04 01:24:06

ベストアンサー

id:jeanjean No.3

jeanjean回答回数64ベストアンサー獲得回数32010/01/04 00:59:30

ポイント80pt

PECL で JSON パッケージ入れればいいんだが、その前にFTPだけでしかアクセス出来なくて yum も PECL も知らないとすると、坊やにはまだ早いというもの。

まぁ、JSONモジュールが使えなくても、json_decodeの代わりに JSON形式の文字列をKeyValue配列に展開できれば良いので、ググればなんとかサンプルコードが出てくるかも。


このサイト(ウノウラボ)を読んだ上で件のプログラムを見てみると、Jsphon というのが便利みたいで、PEARコマンドを使わなくても、PHP単体で存在するかも。 どこか適当な場所にJsphon.phpを置いてプログラムの最初で Jsphon.php を下記のように読み込ませて、

require_once 'Jsphon.php';

下記のように書かれた部分を

$value = json_decode($input, true);

下記のようにJsphon の記述に合わせてやれば良いような気がします。

$value = Jsphon::decode($input);

実際に試していないので、これ以外に落とし穴があるとは思うんですが、PHPのバージョンが5.1.4では絶対無理ではないのでやろうと思えば出来そうですよ。

id:matukoi

うごいちゃいました。

坊やには早い気もしますが、ありがたく使わせて頂きます。

キター!

2010/01/04 01:22:52

その他の回答(2件)

id:chinjoh No.1

chinjoh回答回数103ベストアンサー獲得回数52010/01/03 23:16:59

ポイント27pt

>「Zend Frameworkはそういうもんじゃないんだよ坊や」

これです。

id:matukoi

うすうす感じてはいましたが、すっきりしました。

ありがとうございます。

2010/01/04 00:03:06
id:naninanida11 No.2

naninanida11回答回数193ベストアンサー獲得回数32010/01/03 23:25:44

ポイント27pt

smartみたいな存在です。http://q.hatena.ne.jp/1262527175

id:matukoi

とりあえず、違うってことですね。

PHP5.2以上のサーバー借りてきます。

2010/01/04 00:05:21
id:jeanjean No.3

jeanjean回答回数64ベストアンサー獲得回数32010/01/04 00:59:30ここでベストアンサー

ポイント80pt

PECL で JSON パッケージ入れればいいんだが、その前にFTPだけでしかアクセス出来なくて yum も PECL も知らないとすると、坊やにはまだ早いというもの。

まぁ、JSONモジュールが使えなくても、json_decodeの代わりに JSON形式の文字列をKeyValue配列に展開できれば良いので、ググればなんとかサンプルコードが出てくるかも。


このサイト(ウノウラボ)を読んだ上で件のプログラムを見てみると、Jsphon というのが便利みたいで、PEARコマンドを使わなくても、PHP単体で存在するかも。 どこか適当な場所にJsphon.phpを置いてプログラムの最初で Jsphon.php を下記のように読み込ませて、

require_once 'Jsphon.php';

下記のように書かれた部分を

$value = json_decode($input, true);

下記のようにJsphon の記述に合わせてやれば良いような気がします。

$value = Jsphon::decode($input);

実際に試していないので、これ以外に落とし穴があるとは思うんですが、PHPのバージョンが5.1.4では絶対無理ではないのでやろうと思えば出来そうですよ。

id:matukoi

うごいちゃいました。

坊やには早い気もしますが、ありがたく使わせて頂きます。

キター!

2010/01/04 01:22:52
  • id:sasezaki
    Zend Framework(以下ZF)は、「"use-at-will (使いたいように使ってくれ)" 方式」のコンポーネント群ですので、「Zend Frameworkはそういうもんじゃないんだよ坊や」ということは全くないです。
    Zend_Jsonは、ZFがphpの対象バージョンが5.2.4以上になる、ver1.0以前に(対象phpバージョン5.1.4)にできあがったものですので、動作も問題ないと思います。

    tumblrのAPIはjsonだけではなく、xmlもありますのでそちらを使ってみてはいかがでしょうか。
    http://www.tumblr.com/api
    (jsonを使うということは、jsだけで完結させたいかと思うのですが。)

    また、手前味噌ですが、tumblr用のライブラリを作っています。よろしければご利用ください。
    http://diggin.googlecode.com/svn/standard/trunk/library/Diggin/Service/Tumblr/Read.php
    "Display photos from Tumblr"が意図している画像の表示はこんな風にかけます。
    <?php
    require_once 'Diggin/Service/Tumblr/Read.php';
    $tumblr = new Diggin_Service_Tumblr_Read('username');
    $phots = $tumblr->getPosts(array('type' => 'photo', 'num' => 5), 75);
    foreach ($phots as $p) echo '<a href="', $p['url'], '"><img src="', $p['photo-url'], '" width="75" hspace="3" /></a>';

    また、Zend_Service_Tumblrというのが作成途中ですが存在します。

    というか、”Display photos from Tumblr”のコードはツッコミどころ満載ですので
    (read/json?debug=trueにしとけば、str_replaceいらないだろとか'photo-caption'htmlタグ入るのになんも処理してなくない?だとか)、”Display photos from Tumblr”のコードはコピペしないことをおすすめします。

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません