Home > アーカイブ > 2006-08

2006-08

Simple PHP BlogをWordPressにインポート

  • 2006-08-25 (金)
  • PHP
この記事の所要時間: 040

Simple PHP BlogをWordPressにインポートする方法です。

と言っても前エントリの方法で、Simple PHP BlogのデータをMT形式に変換し、それをWordPressの管理画面でインポートするだけです。

「インポート」で「Movable Type」を選択します。

MT形式に変換したSimple PHP Blogデータをアップロードします。

登録するユーザを選択します。新たにユーザを追加したくなければコンボボックスで登録済みのユーザ選択すれば良いです。(↓ならadminユーザで登録しようとしています。)

カテゴリ・記事・コメントがインポートされます。

これでインポートは完了です。

Simple PHP BlogをMT形式に変換

  • 2006-08-23 (水)
  • PHP
この記事の所要時間: 133

Simple PHP BlogのデータをMT(MovableType)形式へ変換するスクリプトを作ってみました。このスクリプトで変換できるのは以下のデータです。

  • カテゴリ
  • 記事
  • コメント

このスクリプトには2通りの実行方法があります。

Webで実行

sphpblog2mt.phpをSimplePHPBlogを設置しているディレクトリ(たいていsphpblog/)にアップロードします。

次にブラウザからアップロードしたsphpblog2mt.phpにアクセスすればMT形式のデータファイルがダウンロードできます。(SimplePHPBlogがhttp://example.com/sphpblog/ならhttp://example.com/sphpblog/sphpblog2mt.phpにアクセスします。)

コマンドラインで実行

sphpblog2mt.phpを SimplePHPBlogを設置しているサーバにアップロードします。(逆にサーバからSimplePHPBlogをダウンロードしてローカルで実行しても構いません。)

次に以下のようにsphpblog2mt.phpを実行するとmt.txtというファイル名でMT形式のデータファイルが生成されます。

$ php -f sphpblog2mt.php %SimplePHPBlogを設置しているディレクトリ%

>>

あとはこのファイルをMTなり、MT形式ファイルを取り込めるblogなりにインポートすればデータの移行ができます。(MT形式はわりとあちこちで採用されているようなのであとはどうにでもなるかと。)

>>

参考サイト
Movable Type 3.2 マニュアル – Movable Typeの読み込みフォーマット

MotoGP ブルノ

この記事の所要時間: 438

いよいよはじまりましたMotoGP後半戦。舞台はブルノ。丘陵地帯にあり、峠のような雰囲気を持ったサーキットです。テクニカルコースながらコース幅があるのでラインの自由度があり、S字の切り返しやバックストレートから左コーナーへの飛び込みなど見所が多いです。

ブルノと言えばブルノマイスターの異名を取ったマックス・ビアッジでしょう。残念ながら今年はシートが確保できず参戦していません。個人的にはそれほど好きなライダーでは無かった(原田派だったので)ですが、一時代を築いたライダーですので、やはりいないとなると寂しいものです。来季は何らかの形でサーキットに戻ってきて欲しいですね。(ちなみに日本人のブルノマイスターはG+解説等でお馴染みの坂田和人です。)

さて各クラスのレースの模様です。

全文を読む

Windows Live Writer

この記事の所要時間: 122

wordpressの投稿フォームはいちおうWYSIWYGっぽい入力ができるので良いのだが、普段テキストエディッタに慣れている身には結構辛い。何とかならんかな~と思ってたところMy RSS 管理人さんのblogで紹介されてたのが「Windows Live Writer」。

WordPressにも対応しているようなのでWriter Zoneからダウンロードしてインストール。

初期起動時に投稿するblogを設定して完了。実に簡単。

で今お試し中なのだが、かなり良い感じ。blogサイトからデザインやカテゴリなんかを読み込んでくれるので、ほんとblogの見た目そのままで記事が書ける。もちろんカテゴリの設定もできる。さらに既存の記事を取得して編集する事もできる。(まあxmlrpc経由でできる事はたいていできるんだろうけど)

なにより一番感動するのは画像の貼り付け。[alt]+[PtrSc]でキャプチャーした画像が[ctrl]+[v]でさくっと貼れた!!さすがWindowsアプリケーション。blogで画像をアップするのは結構手間なんでこれは良いな~。

あと当然ながらローカルで動作するのでオフライン時にガンガン書いておいて、オンラインになったら一気にアップするなんて使い方もできる。普段カフェなんかで書くこともあるからこれは嬉しいな。

何だかMy RSS 管理人さんと同じような内容になってしまったけど、webのフォームでblogを書いた事がある人なら同じような嬉しさがあると思う。

これ他のWebアプリにも生かしたいなあ。

PHP4.4.4/PHP5.1.5リリース

  • 2006-08-18 (金)
  • PHP
この記事の所要時間: 351

PHP4.4.4/PHP5.1.5がリリースされています。

セキュリティ フィックス&バグフィックスリリースのようです。

PHP5.1.5 Release Announcement
PHP4.4.4 Release Announcement

勉強がてらChangeLogを翻訳してみました。
# 誤訳・間違いがあったら教えて下さい。

    PHP4.4.4 ChangeLog

  • 64bitシステムでのmemory_limit修正
  • 64bitシステムでのstr_repeat()・wordwrap()のオーバーフロー修正
  • open_basedirかsafe_mode有効時にcurlのCURLOPT_FOLLOWLOCATIONを無効化
  • 不正なforeach()によるメモリ破壊を修正
  • #38431のバグ修正 (xmlrpc_get_type()がPHPをクラッシュする)
  • #38377のバグ修正 (session_regenerate_id()後のsession_destroy()でwarningが発生する)
  • #38322のバグ修正 (ssancf()の引数読み込みが任意のコード実行を引き起こす)
  • #38278のバグ修正 (session_cache_expire()の値がphpinfoのsessioncache_expireと一致しない)
  • #38251のバグ修正 (socket_select()と不正な引数)
  • #38183のバグ修正 (disable_classes=FoobarがFooクラスを無効にする)
  • #38112のバグ修正 (壊れたGIFがsegfaults)
  • #37265のバグ修正 (imap_body()のsafe_mode & open_basedirチェックを追加)
  • #29538のバグ修正 (number_formatの0問題)
    PHP5.1.5 ChangeLog

  • 64bitシステムでのmemory_limit修正 (Stefan E.)
  • 64bitシステムでのstr_repeat()・wordwrap()のオーバーフロー修正 (Stefan E.)
  • open_basedirかsafe_mode有効時にcurlのCURLOPT_FOLLOWLOCATIONを無効化 (Stefan E., Ilia)
  • #38322のバグ修正(ssancf()の引数読み込みが任意のコード実行を引き起こす) (Tony)
  • #38125のバグ修正(spl_dual_it_free_storageへの未定義参照) (Marcus)
  • #38112のバグ修正(壊れたGIFがsegfaults) (Pierre)
  • #37587のバグ修正(属性なしのがsegfaultを起こす) (Marcus)
  • #37576のバグ修正(FastCGI env (cgi vars) テーブルオーバーフロー) (Piotr)
  • #37496のバグ修正(FastCGIの出力がバッファオーバーラン) (Piotr, Dmitry)
  • #37487のバグ修正(oci_fetch_array()の配列型は常にOCI_BOTHをデフォルト) (Tony)
  • #37416のバグ修正(iterator_to_array()がrewind()メソッド内の例外を隠す) (Tony)
  • #37392のバグ修正(リクエストの最後に不必要なOCITransRollback()を呼ぶ) (Tony)
  • #37341のバグ修正($_ENVが使われると、インクルードされたファイル内で$_SERVERの2つのエントリが削られ) (Dmitry)
  • #37313のバグ修正(sigemptyset()がインクルードせずに使用される) (jdolecek)
  • #37346のバグ修正(無効なカラーマップフォーマット) (Pierre)
  • #37360のバグ修正(無効なGIFサイズ) (Pierre)
  • #37306のバグ修正(max_execution_time = max_input_time) (Dmitry)
  • #37278のバグ修正(SOAPが__soapCallのuriを参照しない) (Dmitry)
  • #37265のバグ修正(imap_body()のsafe_mode & open_basedirチェックを追加) (Ilia)
  • #37256のバグ修正(php-fastcgiがハンドルコネクションを中止しない) (Dmitry)

WordPressへ移行

この記事の所要時間: 035

blogをSimple PHP Blogからwordpressへ移行しました。

とりあえずblogを、と思いDBも不要なSimple PHP Blogにしていたのですが、実際に使い出すと機能的に不足している点が幾つかありました。
# blogが初めての人には設置もしやすく取っかかりには良いツールだと思います。

blogを投稿していく流れは感覚的に掴めたのでより高機能なWordPressへ移行する事にしました。

WordPressはまだ触り出したところですが、管理画面も日本語化されているので特に問題なく使えています。これからちょこちょこいじっていくつもりです。

盆休み

この記事の所要時間: 053

盆休みに妻の実家に帰省してきた。
いわゆる田舎なので実家の中では携帯は通じず、インターネットインフラが無いので
久しぶりにインターネットに全く触れない日々を過ごした。

普段は暇があればついつい携帯を触ってしまうのだが
こういう環境になると携帯が全く気にならなくなり、いつのまにか電源が切れていた事も気がつかなかった。
メールやRSSの未読が貯まっているなあ、と思いつつも
実家での日々では特に困る事は無かった。

Web2.0だのPHPだの言ってる日々だが、全く無縁な世界を数日経験して
それらはまだ一部の世界のような気がした。
逆を考えれば今自分が知っている世界も小さなもので
知らない世界にはもっと面白い事があって、それらが事業となっている事もあるんだなと。

やはり今自分がやりたい事をしっかりやっていこうと
澄み渡る夏の青空を眺めて思うのでありました。

まあ感慨も束の間、帰りの高速で携帯が通じた途端に
元のペースに戻ってしまったけど。。。

CakePHP – validate

この記事の所要時間: 141

CakePHPでのvalidateネタ。

validateは入力チェック正規表現をmodelの$validateに配列で設定しておくだけなんだけど、メールアドレスの重複チェックなんかはそのままではどうにもできない。

modelの$validateに正規表現ではなく、(入力チェック)メソッド名を入れとけばそれを呼んでくれたりするのかな、と思ったがそれはナシ。
マニュアルではcontrollerで重複チェックを行う方法が載っているだが、正規表現でのチェックはmodelにあるので一緒にmodel内に書きたいところ。

で、考えたのが以下の3つの方法。

  1. model#beforeValidate()に書く
    正規表現での入力チェックより先に呼ばれてしまう。
    一意チェックなんかではDBアクセスが発生するから正規表現でのチェックを通過したものだけ処理を行う方が良い。
  2. model#validates()に書く
    parent::validates()を呼んでから、独自入力チェックを書く。
    validates()内に入力チェックが集約されるからよさげ。
    ただparent::validate()を忘れると正規表現での入力チェックが呼ばれなくなる。
  3. model#beforeSave()に書く
    validates()の後に呼ばれるので正規表現での入力チェックを通過した際のみ呼ばれる。

どの方法でもいちおう動作はするが、1.はイマイチなんで、2.か3.のどちらか。
メソッドの意味的には2.が良いかな。

メモ:

入力エラー時に↓みたいにinvalidate()を呼ぶのだが、引数に注意。

$this->invalidate('username');

この値は単にviewでtagErrorMsg()を呼ぶときに使用するものなのでmodel(DB)のフィールド名(カラム名)と合わせる必要は無いんで。(ちょっとハマッた)

CakePHP

この記事の所要時間: 031

CakePHPイイ!!
PHPらしく(スクリプト言語らしく)柔軟なつくりになっていて面白い。
フレームワークにありがちな設定ファイル書きまくりとか無いしね。

RonRを筆頭に規則を決めておいてそのとおりに記述しておけば
あとはフレームワークが良きに計らってくれるのは良くできてるなあと思う。

今マニュアルをざっと見ていってるんだけど
仕組みが分かるとホント楽しい。
# 最近のフレームワークはチュートリアルとかドキュメントが充実してて
# これもスゴイと思う。

これ使って何作ろうかなー。

PHPフレームワーク

  • 2006-08-09 (水)
  • PHP
この記事の所要時間: 221

自社サービス構築に使うPHPフレームワークを探し中。

RonR登場以来、それの影響を受けたフレームワークが多いんだけど
実際に実務で採用されているフレームワークってあるんかな。
一時mojaviが話題になっていたが、最近あまり聞かないし。

周りでもPEAR・Smartyは使っている人がいるようだけど
公開されているフレームワークを使っている話は聞かない。

今のところ気になっているのは以下。

  • guesswork-classic[PHP4]
    国産の軽量フレームワーク。シンプルな作りになっているので理解しやすい。
    1アクションに対して1メソッドというのは直感的にも分かりやすいね。
    業務で使ってみたかったのだが残念ながら機会が無かった。
    現在開発が止まっている様子。
  • Ethna[PHP4]
    GREEで採用されているフレームワーク。
    やはり実際に公開サイトで稼働しているのは安心かな。
    国産フレームワークなので日本語の情報が多いのも有り難いし。
  • mojavi2[PHP4]/mojavi3[PHP5]
    一時もてはやされたPHPフレームワークの雄。
    これの登場を機にPHPにフレームワークを、という気運が高まってきた。
    少し試してみたがJava系のフレームワークの影響を強く受けているので
    PHPで使うには重い気がする。
    雑誌なんかでは実際に業務で採用されている記事を見たので
    業務システムでの事例はいくつかあるようだ。
    現在は開発が止まってしまったようだ。
    (mojaviから分離したagaviが後継になっているみたい)
  • symfony[PHP5]
    RonRの影響を受けたフレームワーク。RonRをそのままPHPに移植したイメージ。
    ざっと試した感じでコードジェネレータとかは面白いんだけど
    設定ファイル(yaml)がちとうっとおしいかも。
    開発が活発に行われており今後が楽しみ。
  • CakePHP[PHP4/5]
    こちらもRonRの影響を受けたフレームワーク。PHP4/5のどちらでも動作する。
    簡単なCRUD画面を作るにあたってyamlやxmlといった設定ファイルは不要だ。
    今調査中なのだが、さくっと作るには良い感じ。
    こちらも開発が活発に行われているようだ。
  • ZendFrameword[PHP5]
    PHPの開発元Zendが作成しているフレームワーク。
    まだ試していないが、Zend公式フレームワークなだけに今後の本命になるかも。

Web系のサービスでは同じような処理が多いから
フレームワーク上での実装パターンを作っていきたいな。

# ちなみに1×1のお客様向けシステムではこれまでの資産の兼ね合いもあって
# 独自フレームワークを使ってます。

Home > アーカイブ > 2006-08

検索
フィード
メタ情報

Return to page top