rinatsuku.net : php

rinatsukuによる色々メモ。
読んだ書籍の個人的なレビュー、足を運んだイベントや展覧会などの感想、調べものそして試しごとのまとめが多いブログです。

posts of php

フィード取得用ライブラリについて試したときのメモまとめ。

Sat 15:34

一時期、ていうか昨年末のハナシなんですが、「フィードを読み込んでかっこよくページに出力する」という割と普通のことをしたくて、色々右往左往したログを残してみます。
以前試したことのある「Google AJAX Feed API」ならある程度できると分かっていたので、それ以外に何かいいモノないかな?と、別の方法を探してみたのでした。

試している最中のTwitterログ(日付無視)

結論、正直、Google AJAX Feed APIって便利だなぁと思った。
サーバーの関係でPHPが使えなくても、フィードの形式が何であっても、すぱーん!と値を取得できるのってスゴイなぁと改めて感じます。
もちろんフィードの内容によっては、思い通りの表示にできないこと&やり方を理解できていないところもあるんですが、大抵の場合必要な「日付+タイトル+リンク先」は何となく取得出来ちゃうし。
ただ、実装するときに使えそうな選択肢は多いほうが(多分)いいので、頭の片隅に入れつつ、違う方法も模索していきますです。

【12/23追記】「夏目友人帳」の夏目くんが名前を返してくれるtwitter botを作りました

Sat 22:43

@yujinchou botとは? http://twitter.com/yujinchou
「夏目友人帳」の夏目くんが名前を返してくれる非公式botです。
普通のつぶやき&リプライは自動で行います(お知らせなどのみ人力です)。

名前を返してもらうには?

  • @yujinchou にあてて「名前を返せ(or返して)」とつぶやいてください。
  • 上記の他に、「名を返せ(or返して)」「名前返せ(or返して)」でも反応できます。
  • うまくいくと、長くても15分後には @yujinchou よりリプライが届きます。

その他にできること

  • ときどき原作中のセリフをランダムにつぶやきます。
  • いくつかの呼びかけにも反応します。反応ワードは随時増やす予定です。

反応ワード例

  • 挨拶(おはよう・こんにちは・こんばんは・おやすみ・おかえり・ただいま)
  • 天気(暑い・寒い)
  • 名前(なつめ・なっつめー・夏目)
  • ニャンコ先生用?(にゃん・にゃふ・にゃー)

お願い

  • リプライは失敗することもあります。反応がないときは再度呼びかけてみてください。ただし、短時間に連続で呼びかけられても、1回しかリプライを返さない設定になっています(エラーを防ぐため)。
  • フォローいただいた際のフォロー返しは人力で行っていますので、少しお時間をいただくことがあります。ご了承ください。
  • 反応ワードの追加など、メンテナンスはゆっくりペースで行います。
  • キャラが崩れてたらごめんなさい。
  • その他、ご意見・お問い合わせなどは @yujinchou へのDMでお願いします。

以降は @yujinchou bot を作った直後の記述(2009/09/19)。作成メモも兼ねてます。

PHPでチェックボックスを使うときの扱い方

Sat 15:54

先日PHPでチェックボックスを扱ったので、値の取り方をメモ。
チェックボックスといえばこんなの(↓)ですが、


テスト
なので
送れません。
それはそうと、
もっかい阿修羅展行きたい。

name属性に [] という2文字をつけると、チェックボックスの値をいっぺんに配列として取得できます。知らなかった!
ラジオボタンやテキストエリアなんかと違って、ひとつのくくりに複数の値が入る可能性があるから、一気に取るほうが正しいですね。

で、困ったのはこの後。
その他の変数たちと一緒に、チェックされた項目たちも、自動返信メールの本文として羅列したかったんですが、本文用に作った変数はヒアドキュメントで定義していたので、そのまま配列としては読み込めなかったわけで(個別の変数ならヒアドキュメントの中で使える)。

配列でとった意味ないじゃん! と早まるところでしたが、implode関数を利用して「配列の値を指定の文字で区切って、ひとつの文字データにして、ひとつの変数に突っ込む」ことで解決しました。

特に参考にさせていただいたURLはこちら!(↓)
http://www.pahoo.org/e-soul/webtech/php02/php02-20-01.shtm
http://shoyu-ramen23.jugem.jp/?eid=183
http://www.y-tti.com/blog/2007/10/php_checkbox.php

あとフォーム関連でやったことないといえば、もちろんいっぱい! あるんだけど、ファイルのアップロードとかだなぁ。むむー。

PHPでメールフォームを作ろうとしてハマったことのメモ。

Sun 18:36

作りたかったメールフォームはこんなの↓。

  • 入力フォームに色々入れてもらう
  • 入れてもらった内容を確認してもらう
  • OKだったらメールを送る
  • という内容を、機能ごとに分けて表示用のPHPファイルに読み込む

という、シンプルなことをしたかったんですが、どっこい悩みました。
大元の考え方は、以前PHPの講座を受けたときに頭に入っていたんですが、実際作るとなるとおろおろ。

ハマったことがいっぱいありました。

  • 機能ごとにPHPファイルを分けないと意味不明になる。
  • 確認のページにはフォームが表示されないので、変数の受け渡しを忘れてた(送れるわけがない)。
  • 一番初めに言語を設定していたのに、mb_send_mail関数を使うときに言語を再設定してしまい、文字化け(余計なお世話状態)。
  • 日本語はマルチバイトだから! とmb_send_mail関数にこだわっていたら、mail関数で送れた。
  • mail関数の引数を勝手に増やしていた(これまた送れるわけがない)。
  • あとは変数名の間違いとか、配列を使わないといけない関数にひとつの変数を突っ込んでたりとか。

参考サイト(順不同・他多数)

次の課題?
全項目に入力がなかったら「未入力の項目があるよ」みたいに一律にエラーを返す仕組みにしたんだけど、個別に「○○が入ってないよ」ってのは作ってない。
プラス、個別に正規表現をあててはいない。
プラス、データベースに各項目を保管するとなったらまた色々書かなきゃいけないぞ......
↑の課題もクリアできるように頑張ろう☆