2010-01-01から1年間の記事一覧

Web製作でよく使うPHP変数の値有無判定関数

PHP

/** * * @param mixed $v * @return boolean * **/ function v($v){ if(is_bool($v)){ return $v; }elseif(is_numeric($v)){ // all numeric (0 and '0') are true. return true; }elseif(is_string($v)){ return !empty($v); }elseif(is_array($v)){ $v = a…

PHPのStringのゼロに注意

PHP

$a = 0; if(empty($a)){ echo 'TRUE'; }else{ echo 'FALSE'; } これが、TRUEになることは容易にわかるのですが $a='0'; if(empty($a)){ echo 'TRUE'; }else{ echo 'FALSE'; } これも、TRUEになるとは盲点でした。恐るべしPHP

PINGが通らないときにまず疑うことは、iptablesの設定

ネットワークの設定もひと通りすませて いざPINGを飛ばしてレスポンスを確認したときに まったく応答がなく四苦八苦したときは、 接続先のiptablesを確認してみることをおすすめします。 無用な接続を弾くためにiptablesをしっかり設定したつもりが 接続許可…

|| をつかって変数を初期化

PHP

値の不明な変数を初期化する場合 if($a){ $a = 'hogehoge'; }もしくは $a = $a ? $a : 'hogehoge';これを以下のように書きます。 $a || $a = 'hogehoge'; は、if文の条件式にしか普段は使わないのだけれども 編集の初期化処理などに使うと1行で簡潔にかけて…

月、日の桁数をそろえたい時にsubstrの便利な使い方

PHP

月とかカレンダーの日をfor文でまとめて出力するときに 以下のように書くことがあるかと思います。 for($i=1;$i<=12;$i++){ echo $i.'月<br>'; } ================= 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 ただ、これだとレイアウト的に1桁の月と2…

suPHP の Premature end of script headers: の苦悩

suPHP をApacheにインストールして、PHPをCGI実行させてやろうとしたときに出たエラーメッセージ Premature end of script headers:とにかく、何が問題なのかは教えてくれず、どこか悪いといっているようです。 ブラウザをたたいても恐怖のInternetServerErr…

SugarSyncの無料ストレージ容量が5GBにアップ!

いやはや、この無料のストレージ容量が増えたのはすごくうれしい。 SugarSync 個人的に、DropBoxやらSugarSyncなんかのファイル同期ストレージは ヘビーに利用しているのでどんどんデータがたまって容量不足にいつも困ってました。 ちょこっと書いたソースや…

DirectoryIndex と mod_rewrite を使うときの注意

DirectoryIndex と mod_rewrite を使うときに / で終わるパス(ディレクトリ)を指定したときの動作には注意が必要です。 mod_rewrite で、index.html → index.php とか index.rb とかしている場合 http://example.com/index.html にアクセスすると http://e…

さくらインターネットで、MySQLを使うときに気をつけたいこと

スタンダードプランだとInnoDBストレージがが使えない。これにはちょっと驚いたけど、FAQに書いてありました。 http://faq.sakura.ad.jp/faq/1032/app/servlet/qadoc?000526MyISAMだとテーブルロックなので、更新と参照のバランスよっては 問題になる可能性…

PECLでSQLiteをインストールできないとき

PHP

こちらで紹介されているように、途中エラーで止まってしまう場合の対処 http://blog.plastik.jp/archives/44上記内容の中で、「ソースを直接編集」の部分がどのファイルを編集するべきか すぐにがわからなかったのでメモ > sqlite.c を直接編集 vi sqlite.c …

fgetcsv で文字化けする場合

PHP

fgetcsv の仕様が、PHP4 -> PHP5 で変わったらしくLocale に依存するらしい。 日本語が文字化けする場合は、以下のように明示的にLocaleを変更する setlocale(LC_ALL,'ja_JP');fgetcsv 実行前に上記を書けばOK。

大文字と小文字を区別しないで like 検索する

PostgreSQLで、大文字と小文字を区別しないで like 検索する場合は、ilike にすればよい。 select * from tableA where col1 like 'a%'; ↓ select * from tableA where col1 ilike 'a%'; これで、a〜 と A〜 の両方にマッチする。

PostgreSQL / MySQL 文字列置換

文字列の置換方法(replace)replace( 文字列 , '検索置換文字列', '置換後の文字列') select replace('aabbcc', 'bb', 'BBBBB') ------- result ------- aaBBBBBcc Updateでも使える update tableXXXX set col = replace( col , 'bb', 'BBBBB') where col = '…

National Geographic の120年間の記録

ナショナルジオグラフィックの120年間分を160GBのHDDに収めた商品 http://shop.nationalgeographic.com/ngs/browse/productDetail.jsp?productId=1076014うっふょー、これ200ドル弱なの? すげぇすげぇと思いサイトをチェックして買おうとしたら どうも日本…