YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

PHP

pfffをビルドする

はじめに チャオ(こんにちは)、Python界のザッカーバーグです。最近「ソーシャル・ネットワーク」とかいう映画が流行ってるそうですね。僕も刺激されたのでFacebookが開発したソースコード解析ツールのpfffを試してみました。Python Hackathon 2011.02で紹…

PHP5.1.xにSQLiteモジュールをインストールする

PHP

プロキシ使わないといけないのでその設定。 Nothing found for Pear Index # pear config_set http_proxy http://<host>.<domain>:<port>/pecl使ってインストール。 # pecl install SQLite Password: WARNING: channel "pear.php.net" has updated its protocols, use "channel-u</port></domain></host>…

php-modeで関数を参照

PHP

今日一日風邪ひいて家に引きこもってたんで、ちょっと気になることを調べていたらいろいろと便利な機能が分かりました。備忘録。 php-mode for Emacs 関数を参照する コード中の標準関数上でC-c C-fとするとhttp://www.php.net/のマニュアルを表示してくれま…

CakePHP導入

PHP

最近流行のRuby on Railsを導入したいなと思いつつ、まだRubyに慣れていないので、どうしたものかと思っていたら、どうもPHPでRailsのクローンっぽいフレームワークが出ていたのですね。 CakePHP: the rapid development php framework. Pages フォーラム - …

MySQLもいじってみる

PHP

いままでPostgreSQLしかいじってこなかったけど、個人的にちょっと作ってみたい物があるのでとりあえずAAAcafeに持っていたアカウントをほじくり返していじり始めてみた。AAAcafeはMySQLを使えるので、とりあえずphpMyAdminをサーバに置いてテーブル設置。 …

ディレクトリの中身

PHP

とある事情でディレクトリ中の全てのファイル名を配列に入れたいと思って、ちょっと探してみたらすぐ見つかった。すばらしい。 $files = array() // 一応初期化 exec('ls',$files);これだけとは。すばらしい。

Debian上のPHP4でPostgreSQLを使う

PHP

コンパイルするときに--with-pgsqlとすればいいんだけど、いじろうと思っていたサーバでのPHPは俺がインストールしたのではないので--without-pgsqlとなっていた。再インストールする必要があるかと思っていたんだけど、試しに % apt-get install php4-pgsql…

読了

PHP

Smarty入門?PHP+テンプレート・エンジンでつくるMVCアプリケーション?作者: 山田祥寛出版社/メーカー: 翔泳社発売日: 2005/03/15メディア: 単行本購入: 6人 クリック: 132回この商品を含むブログ (31件) を見る 少し時間に余裕ができたんで、読んでみました…

デバッグする

PHP

PHPスクリプトを読み込み状態で止まってしまうエラーが起きてしまい、どう対処したらいいか困っていた。というのも今までデバッグするときはechoを使っていたからなんだけど、読み込み中で止まってしまってはそれは使えない。 で、よく考えたらexitでスクリ…

ローカル開発

ネットにつないでいないと開発できないってのは結構きつい。結構ネット環境がないところに遊びにいったりしてるしね。というわけで、自分のマシンにも入れてみました。PHPやApacheのバージョンい関してはちょっとわけあり。■環境 OS : WindowsXP Pro SP2 Apa…

PHPスクリプトを走らせる

PHP

コンソールからPHPファイルを走らせる時は php filename.phpでできることを今知った。遅い?

zip圧縮

PHP

フォルダをzip圧縮してそれをダウンロードさせたいけどうまくいかない。そもそもzip圧縮がうまくいかない。 exec("zip -qr foo.zip foo/*");じゃあいかんのか?■追記 その後うまくいったので追記です。 どうやらfooをユニークな名前にしておかないと、複数リ…

文字列のURLエンコード・デコード

PHP

PHP: urlencode - Manual PHP: urldecode - Manual GETに日本語を送りたいときはURLエンコードをしてあげないといけません。(でもなんかエンコードは勝手にやってくれてるっぽい)で、エンコードされた文字列は当然デコードしてあげないと使えないので、以…

金額の表示

PHP

PHP: number_format - Manual お金を扱うような場面だと社会一般的な表現で金額を表示しないといけない。回りくどい言い方だけど要は3桁ごとのカンマ区切りとかね。どうやってやろうかなぁと考えてたらこんな便利な関数があったんですね。しかもフランス表…

NULL?0?

PHP

PHPをやっていると文字列と文字と数字の扱いがすごく適当になる。もちろんそれがメリットになっている部分も大いにあるんだけど、きちんと意識しておかないと痛い目に遭う。 ある変数に0をつっこむ場合と空の文字列("")をつっこむ場合が両方あって、それぞ…

ヒアドキュメントの危険性

PHP

なんかヒアドキュメントを使っているスクリプトでどうもエラーが現れる。気をつけないといけないですね。とりあえず困ったときは全てecho文に直してみるというのは一つの手。

マニュアル

PHP

PHP: Download documentation PHPって結構マニュアルとか整ってて、なかなか関心してるんだけども、最近ひとつ残念なことがありました。上のリンクのJapaneseのWindows HTML Helpを落としてみたら、なんとびっくり文字化けじゃありませんか。仕方なくMany HT…

割り算

PHP

PHP: 代数演算子 - Manual PHP: 型の相互変換 - Manual 2 つのオペランドが整数の場合(または整数に変換された文字列の場合) であっても、割算演算子 ("/") は常に float 値を返します。 というわけで、今日まで気がつかなかったわけですよ。C言語とは違うん…

foreach文で$keyと$value各々に条件を付ける

PHP

タイトル通り。連想配列にDB上のテーブルのカラム名と値をつっこんで、そのあとforeach文でクエリー文を作成しようと思っていたけど、そのときに ある特定のキー(カラム)は排除 空欄になっている(ある特定の値になっている)値は排除 しようと思って fore…

連想配列の値をforループを使って変更したい

PHP

他の変数を回しているforループの中で連想配列の値を変更したいなぁ、と思ったときに単純に$array[$i]とやったらエラーが出た。どうやら連想配列には数値インデックスは振られないようで。困っていろいろ探していたらkey()、next()、prev()といった関数を使…

ヒアドキュメント

PHP

まとめたHTMLソースを書くんだったらヒアドキュメントで書くと綺麗にできると思うよ。 echo <<< (終了文字列) (終了文字列);変数も入れられるので便利。なんか「

オブジェクトの配列を作る際の注意

PHP

ひとつひとつちゃんとnew宣言してあげないといけないっぽい。以下のコードを書いたらうまく動かなかった。 $objects[] = new Class; for($i=0;$i<$NUM;$i++){ $objects[$i]->function(); }これならうまくいく。 for($i=0;$i<$NUM;$i++){ $objects[$i] = new …

DBに登録する

PHP

今日はDB更新用の関数を書いた。ポイントはINSERTでもUPDATEでも対応できるようにしたこと。新規か否かのフラグが必要だけど、結構いい出来になったと思う。それを作る上で手こずった点をいくつかリストアップ。 オブジェクト内の変数を手っ取り早く取得する…

セッション管理

PHP

セッションを用いる時はsession関数をいくつか使わないといけません。ここでおまじない的セッション管理の方法。 session_start(); session_register("var_name"); $_SESSION["var_name"] = $var; まずセッション変数を使うPHPファイル内では必ず先頭でsessi…

インスタンス関係

PHP

私、今PHPのインスタンス関係の大胆さに少々感動しております。だってむちゃくちゃ簡単だったんだもん。まずインスタンスの配列の作成について。 vars[$i]= new Class(); これでOKです。簡単すぎる! 次に外部関数を用いる場合。これはrequireをする必要が…

改行コードをbrタグに変更

PHP

OSによって改行コードはまちまちだからそれに併せて変更してあげないといけない。とりあえずこんな感じでやってみた。うまく行っているように見えるのでたぶん大丈夫でしょう。 $str = str_replace("\r\n", "\r", $str); $str = str_replace("\r", "\n", $st…

フォームで検索を作る その1

PHP

DBにどんなSQL文を送るかがコツと見た。とりあえず今日使ったのは以下の様な文。 SELECT * FROM table WHERE CAST ( int_value as varchar ) LIKE '_1%'; CASTってので、int型をchar型に変換してLIKEでパターンマッチング。「_」は任意の一文字に対応してて…

変換

PHP

諸々変換することが多い。 10進数→2進数:decbin() 2進数→10進数:bindec()

フォームの入力には注意

PHP

以下のような関数を使ってフォームの入力値に対して堅牢性を高めたい。 trim() addslashes() htmlspecialchars() md5()

PostgreSQLに送るdate型の作成

PHP

PHPもPostgreSQLも日付に関してはかなり強引にやっても動く。ただPHP内で文字列を日付にするにはやっぱり作業は必要。おまじないは以下 int MONTH,DAY,YEAR; date("m-d-Y", mktime(0, 0, 0, MONTH, DAY, YEAR)); その月の最後の日を表したいときは翌月の0日…