カテゴリー別アーカイブ: プログラミング

PHPで配列をループでやるには「for」か「foreach」か

PHPでプログラミング。

ショッピング系のウェブサービスで取得したXMLの要素にアクセスするわけだが、複数の商品に対して同じことをするのである。商品名と価格などを取り出すのだ。

で、それぞれの商品に対して、というところでループの方法がいくつかPHPに用意されており、同じような結果が得られる。

forを使うか、それとも、foreachを使うか。

ということが気になって調べたらこんなエントリを発見。

「PHP 配列を回すならforかforeachか | Shin x blog」

PHPの人はだいたいforeachを使うみたいです。

他の言語の人はどんな感じでしょう? 似たような構文が何種類かあるわけですよね? perlってどうだったっけ? 長いこと触ってないので思い出せない。

自分専用のPROXYを立ち上げられるという話

なるほど、そういう方法があったか。GAEは使ってるけど、こういうのは思いつかなかった。

というのが、Google App Engine(GAE)を使ったPROXY構築の話。「Google App Engine で自分専用 Proxy – ちからの備忘録的日記」から。これ、試すだけならプログラミングそのものはまったく不要ですね。GAEのアカウントのとり方とかも解説してあります。いい記事です。時間が空いたら試してレポートしてみたいと思います。いや、各自やってみましょう。ということで。

GAEそのものについてはここから。Python、Javaが動くレンタルサーバーですね。大雑把にいえば。いや、だいぶ誤解を与えそうな表現ですが。「Google 技術を使用してスケーラブルな Web アプリケーションを作成する環境」ってとこですか。わかりにくい。

WorsPressで散歩日記(旅行記)を作る

WordPressの便利なところはプラグインでカンタンに機能を拡張できることだ。

地図を載せるのに便利なのは「Lightweight Google Maps (地図プラグイン)」というもの。

緯度・経度情報をカスタムフィールドに入力すれば、その地点の地図が掲載できるのだ(カスタムフィールドについては後述)。

しかし、緯度・経度の割り出しは別途行う必要がある。これをカンタンにしてくれるプラグインもある。

Google Maps Anywhere (地図表示)」というのがそれ。

これ自体も地図を表示するプラグインだが、地図の表示はショートコードという仕組みを使う。

このプラグインの便利なところは、記事投稿画面でキーワードによる地図検索ができて、緯度・経度の割り出しもGUIでできるところだ。別のウィンドウを開く必要もない。

で、記事に地図を入れる際には前述のとおりショートコードというWordPress独自の機能を使うのだが、単にカスタムフィールドに緯度・経度を挿入するためだけにも使用できる。これがポイント。

「Google Maps Anywhere」で緯度・経度情報をカスタムフィールドに追加、そのカスタムフィールドの情報を基に「Lightweight Google Maps」が地図を表示してくれる。記事自体になんらかの情報を入れる必要はない。

これが私がたどり着いたプラグインによるシンプルかつカンタンな地図挿入の方法だ。もちろん、ほかにもいろいろ方法があるのだけど、これに落ち着いている。

で、カスタムフィールドについてもちょっと解説。
WordPressだけでなくMovableTypeなどにも同様の仕組みがあるようなのだけども。
記事にヒモつけしたデータベースみたいなものか。キーと値のペアで、記事に情報が付加できると考えればいいかも。この情報を基にさまざまな処理が行える。処理はプログラミング次第なわけだけど、たとえば、上のLightweight Google Mapsでは、各投稿で設定したカスタムフィールドの値を複数取り出して、1つの地図(「固定の地図ページ」と呼んでいる)にマッピングするということができるようになっている。

最近は、こうして入力したカスタムフィールドの情報を基にさらに別の情報をウェブサービスから取得して表示するというプラグインを自分で作って遊んでいる。いわばマッシュアップという感じ。プログラミングの楽しみはこういうところにあるんだなあ、と思う今日この頃。

PHPを使って「10週間ウェブ開発講座」

なかなかおもしろい講座チックなコンテンツ。

デザイナーがwebサービスを10週間で作れるようになる方法。または私は如何にしてPHPを愛するようになったか。 」で知った「10週間ウェブ開発講座」。

プログラミング未経験者向けということだけど、プログラミング経験者でPHPは未経験、って人にもよさそう。ほんとのところはデザイナー向けなのかな?

プログラミングそのものよりも環境についての説明が前半を占めているので、ちょっとあれかもですが。

コメント欄の日付に時刻を追加

テーマをいじりました。時刻がほしいということだったので。いじったファイルはテーマのなかのfunction.php。

<li><?php echo get_comment_time(__(‘F jS, Y’, ‘piano-black’)); ?></li>

とあるところを、

<li><?php echo get_comment_time(__(‘F jS, Y’, ‘piano-black’)); ?> <?php echo get_comment_time(__(‘H:i:s’, ‘piano-black’)); ?></li>

としました。フォーマットを指定している「F jS, Y」に「 H:i:s」を追記するだけでいけるかと思ったのですが、それだと日本語表記がうまくされないようだったので、別途テンプレートタグを同じように追加してみました。こんな感じでいかがですかね?

公式の解説は以下のリンクで。

テンプレートタグ/wp list comments

今後のためにメモ。

シードが同じなら同じ結果を返す疑似乱数生成器

Javascriptによる疑似乱数生成を調べているのですが、いいものが見つかりません。

具体的には。

  • 日ごとに別の結果を出す - 同じ日ならいつ生成しても同じ結果になる
  • 別の日には違う結果を出す - その日のうちなら同じ結果を出す
  • こんな感じです。

    ということで、乱数生成のシードに日付を与えることで、その日のうちは同じ結果を出す、というものということになるでしょうか。

    JavascriptのMath.random()はシードの指定ができません。そこで別の生成方法を探しているというわけです。

    目的に合致したものとしてはこんなのが見つかりました。

    Mersenne Twister in JavaScript

    ただ、サイズがちょっと大きいのです。

    ブログパーツのスクリプトへの使用を考えているため、もっと小さいサイズのものが望ましいのです。機能は上記のものほどなくてもかまわないのです。

    なんかうまい方法ありませんかね?