2009-03-01から1ヶ月間の記事一覧

Exceptionを分けるお話。

PHP

「数種類の例外が発生する場合、例外ごとにエラーメッセージを変えたい」 という要望があったので、以下のような方法を列挙してみました。 フラグを立てることによる分岐。 例外が発生する処理ごとに、それぞれ「Exceptionをcatchする」処理を入れる。 Excep…

【ZendFramework】メール処理

PHP

先日、PHPにはメール送信に関する関数が備わっている旨を書きましたが、 ZendFrameworkには 「Zend_Mail」 というコンポーネントが用意されていました… $mailObj = new Zend_Mail(); $mailObj->setFrom($mail_address_from); $mailObj->addTo($mail_address_…

【ZendFramework】Zend_Configは便利。

PHP

Apacheのアクセスログが置かれているディレクトリの絶対パスや、ルートディレクトリ、webapp等の絶対パスは 各クラス、モジュールで共通に使う ハードウェアの環境によって変化する可能性がある …ものなので、一箇所にまとめてカプセル化して管理しておくと…

便利な関数達。

PHP

メールを送りたい場合⇒mail、mb_send_mail関数! 「mail」という名前が、あまりにそのまんまですが… ※あらかじめ「php.ini」でメールサーバの設定が必要です。 mail(送信先アドレス、件名、本文、送信元) のように記述します(以下に例を書きます)。 mail("ch…

【ZendFramework】DBとの連携。

PHP

特定のカラムの値を抽出したい。 あるカラムについてグループ化したい。 グループ化したものに制約を加えたい。 指定したカラムの値順にソートしたい。 $array_result = $this->_db->fetchAll( $this->_db->select()->from(array('p'=>self::TBL_PV), array(…

ログのローテートでエラー

先日作ったログローテートの設定絡みでエラーが発生しました。 /etc/cron.daily/logrotate:error: httpd:1 duplicate log entry for /var/log/httpd/Choo-access_log エラーメッセージは 「設定がダブっていますよ」 という内容で、 /etc/logrotate.d/httpd …

fgets関数を使ったときに出るゴミ(?)

PHP

第2回WBC、日本代表連覇おめでとうございます(・∀・) 延長10回表のイチロー選手の決勝タイムリーには痺れました☆ MVPは前回大会に続いて、松坂投手が受賞。 …さて、本題。先日のエントリーで書いたApacheのアクセスログを読み取る処理で、 $load = fgets($ha…

sprintfは便利

PHP

フォーマットを指定して出力することの出来る関数なのですが、日時のように桁数の違う数字(一桁と二桁)が 入り混じって存在するものに対して、 「桁数をそろえたいな〜」 と思ったときに活躍します(・∀・) 例えば、 $hour = 7; $hour_formatted = sprintf("%…

「入門vi」

第六版だそうです。むか〜〜しに購入した 「Linuxコマンドブックビギナーズ」 という、初心者向けのLinuxコマンド本にviの基本操作が載っていましたが、 それ以外にも便利なコマンドがあるようだったので、オライリー社のマニアックな この本を買うことにし…

「Apacheクックブック」

副題は 「Webサーバ管理者のためのレシピ集」 となっていますが、現在、アクセスログのローテート で四苦八苦しているところですし、Apacheに詳しくなっておくことは WEBプログラマとして肝要と考えたので購入しました。

「set_include_path」の使い方

PHP

php.ini内の include_path= で指定された部分を、set_include_pathが呼ばれたスクリプト内でのみ一時的に書き換える、 という関数です。 例えば「set_include_path」を呼ぶファイルの場所が /home/choo/release/webapp/models/ で、 /home/choo/release/Zend…

Chocotte de postgres

PostgreSQLを開始する⇒「$ psql -d データベース名 -U ユーザアカウント」 PostgreSQLを終了する⇒「\q」 integerの桁数は指定できない。 テーブル一覧を見る⇒「\d」 特定のテーブルの定義を見る⇒「\d テーブル名」

「別れ際に握手する奴とは二度と会うな。」

各ページに一言ずつ書かれている名言集というか何と言うか… 「あぁ、なるほど」 と思えるような一言集です。 真実はシンプルである。 キャバクラ嬢を落としたければ、キャバクラには行くな。 ビジネス書や自己啓発所を何万冊読んでも成功しない。成功するの…

「土曜日力の鍛え方」

金土日を二泊三日の小旅行ととらえ、平日では できないことをしていこう、という考え。 「土曜日の夜に部屋の片づけをする」 というのは良いと思いました。最近は金曜日の晩もそれほど遊んだりしないので、 金曜日の晩も部屋の片付けデーにするのも良いかな…

財布購入。

春なので新しく財布を買おうと思い、以前から目を付けていた「m+(エムピウ)」の 「MILLEFOGLIE」 をネットで購入しました(・∀・)

「character」と「character varying」の違い。

character:固定長 character varying:可変長 例えば、100バイト確保した固定長カラムに、90バイトのデータを格納すると、 10バイトの空白文字が自動的に入ります。このデータを抽出するときには、いちいちTrimする必要が出てくるので面倒…ちなみに、Postgr…

ハマった理由。

PHP

以下の二点に関して、ハマりました(´・ω・`) クラス定数。 メソッドの呼び出し。

rsync

Apacheログのローテーションについて。

若干ハマり気味です…(´・ω・`) $ vi /etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly #weekly to daily by hr-chuno 20090309 daily # keep 4 weeks worth of backlogs rotate 4# create new (empty) log files after rot…

前日日付などを取得する方法

PHP

「今日の日付」 を取得したい場合は、date関数を使って date("Ymd"); // 年月日 date("Ym"); // 年月 date("d"); // 日 のようにしますが、これとstrtotime関数を使って、前日日付などを取得することが可能です。 date("Ymd",strtotime("-1 day")); //1日前…

cronでPHPのプログラムを動かす

Apacheのアクセスログを読み取る処理を定期実行させるため、cronを利用することに。 ※バッチ処理っぽい動きが期待できるかと(・∀・) cron設定のためには、以下のコマンドを叩きます。 $ crontab -e これによりエディタが開き(私の環境ではviでした)、ログイ…

strpos(文字列検索関数)の使い方について

PHP

strposは速いそうですが、0番目に検索したい文字が存在した場合… 例えば、'あいうえお'という文字列の中に、'あ'があるかどうかを検索する時、if文の判定で if(strpos('あいうえお', 'あ')){…} とすると、falseが返されてしまいます。 そこで if(strpos('あ…

ファイルの読み取り

PHP

ApacheのアクセスログをPHPで読み取る処理を実装(・∀・) ※「PHPからApacheのアクセスログに好きな情報を出す処理」(PHP⇒Apache) についてはネットでよく見かけますが、逆パターン(Apache⇒PHP)はイマイチ… $path_to_access_log = "/var/log/httpd/access_log"…