PHP
はじめに チャオ(こんにちは)、Python界のザッカーバーグです。最近「ソーシャル・ネットワーク」とかいう映画が流行ってるそうですね。僕も刺激されたのでFacebookが開発したソースコード解析ツールのpfffを試してみました。Python Hackathon 2011.02で紹…
プロキシ使わないといけないのでその設定。 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 for Emacs 関数を参照する コード中の標準関数上でC-c C-fとするとhttp://www.php.net/のマニュアルを表示してくれま…
最近流行のRuby on Railsを導入したいなと思いつつ、まだRubyに慣れていないので、どうしたものかと思っていたら、どうもPHPでRailsのクローンっぽいフレームワークが出ていたのですね。 CakePHP: the rapid development php framework. Pages フォーラム - …
いままでPostgreSQLしかいじってこなかったけど、個人的にちょっと作ってみたい物があるのでとりあえずAAAcafeに持っていたアカウントをほじくり返していじり始めてみた。AAAcafeはMySQLを使えるので、とりあえずphpMyAdminをサーバに置いてテーブル設置。 …
とある事情でディレクトリ中の全てのファイル名を配列に入れたいと思って、ちょっと探してみたらすぐ見つかった。すばらしい。 $files = array() // 一応初期化 exec('ls',$files);これだけとは。すばらしい。
コンパイルするときに--with-pgsqlとすればいいんだけど、いじろうと思っていたサーバでのPHPは俺がインストールしたのではないので--without-pgsqlとなっていた。再インストールする必要があるかと思っていたんだけど、試しに % apt-get install php4-pgsql…
Smarty入門?PHP+テンプレート・エンジンでつくるMVCアプリケーション?作者: 山田祥寛出版社/メーカー: 翔泳社発売日: 2005/03/15メディア: 単行本購入: 6人 クリック: 132回この商品を含むブログ (31件) を見る 少し時間に余裕ができたんで、読んでみました…
PHPスクリプトを読み込み状態で止まってしまうエラーが起きてしまい、どう対処したらいいか困っていた。というのも今までデバッグするときはechoを使っていたからなんだけど、読み込み中で止まってしまってはそれは使えない。 で、よく考えたらexitでスクリ…
ネットにつないでいないと開発できないってのは結構きつい。結構ネット環境がないところに遊びにいったりしてるしね。というわけで、自分のマシンにも入れてみました。PHPやApacheのバージョンい関してはちょっとわけあり。■環境 OS : WindowsXP Pro SP2 Apa…
コンソールからPHPファイルを走らせる時は php filename.phpでできることを今知った。遅い?
フォルダをzip圧縮してそれをダウンロードさせたいけどうまくいかない。そもそもzip圧縮がうまくいかない。 exec("zip -qr foo.zip foo/*");じゃあいかんのか?■追記 その後うまくいったので追記です。 どうやらfooをユニークな名前にしておかないと、複数リ…
PHP: urlencode - Manual PHP: urldecode - Manual GETに日本語を送りたいときはURLエンコードをしてあげないといけません。(でもなんかエンコードは勝手にやってくれてるっぽい)で、エンコードされた文字列は当然デコードしてあげないと使えないので、以…
PHP: number_format - Manual お金を扱うような場面だと社会一般的な表現で金額を表示しないといけない。回りくどい言い方だけど要は3桁ごとのカンマ区切りとかね。どうやってやろうかなぁと考えてたらこんな便利な関数があったんですね。しかもフランス表…
PHPをやっていると文字列と文字と数字の扱いがすごく適当になる。もちろんそれがメリットになっている部分も大いにあるんだけど、きちんと意識しておかないと痛い目に遭う。 ある変数に0をつっこむ場合と空の文字列("")をつっこむ場合が両方あって、それぞ…
なんかヒアドキュメントを使っているスクリプトでどうもエラーが現れる。気をつけないといけないですね。とりあえず困ったときは全てecho文に直してみるというのは一つの手。
PHP: Download documentation PHPって結構マニュアルとか整ってて、なかなか関心してるんだけども、最近ひとつ残念なことがありました。上のリンクのJapaneseのWindows HTML Helpを落としてみたら、なんとびっくり文字化けじゃありませんか。仕方なくMany HT…
PHP: 代数演算子 - Manual PHP: 型の相互変換 - Manual 2 つのオペランドが整数の場合(または整数に変換された文字列の場合) であっても、割算演算子 ("/") は常に float 値を返します。 というわけで、今日まで気がつかなかったわけですよ。C言語とは違うん…
タイトル通り。連想配列にDB上のテーブルのカラム名と値をつっこんで、そのあとforeach文でクエリー文を作成しようと思っていたけど、そのときに ある特定のキー(カラム)は排除 空欄になっている(ある特定の値になっている)値は排除 しようと思って fore…
他の変数を回しているforループの中で連想配列の値を変更したいなぁ、と思ったときに単純に$array[$i]とやったらエラーが出た。どうやら連想配列には数値インデックスは振られないようで。困っていろいろ探していたらkey()、next()、prev()といった関数を使…
まとめたHTMLソースを書くんだったらヒアドキュメントで書くと綺麗にできると思うよ。 echo <<< (終了文字列) (終了文字列);変数も入れられるので便利。なんか「
ひとつひとつちゃんとnew宣言してあげないといけないっぽい。以下のコードを書いたらうまく動かなかった。 $objects[] = new Class; for($i=0;$i<$NUM;$i++){ $objects[$i]->function(); }これならうまくいく。 for($i=0;$i<$NUM;$i++){ $objects[$i] = new …
今日はDB更新用の関数を書いた。ポイントはINSERTでもUPDATEでも対応できるようにしたこと。新規か否かのフラグが必要だけど、結構いい出来になったと思う。それを作る上で手こずった点をいくつかリストアップ。 オブジェクト内の変数を手っ取り早く取得する…
セッションを用いる時はsession関数をいくつか使わないといけません。ここでおまじない的セッション管理の方法。 session_start(); session_register("var_name"); $_SESSION["var_name"] = $var; まずセッション変数を使うPHPファイル内では必ず先頭でsessi…
私、今PHPのインスタンス関係の大胆さに少々感動しております。だってむちゃくちゃ簡単だったんだもん。まずインスタンスの配列の作成について。 vars[$i]= new Class(); これでOKです。簡単すぎる! 次に外部関数を用いる場合。これはrequireをする必要が…
OSによって改行コードはまちまちだからそれに併せて変更してあげないといけない。とりあえずこんな感じでやってみた。うまく行っているように見えるのでたぶん大丈夫でしょう。 $str = str_replace("\r\n", "\r", $str); $str = str_replace("\r", "\n", $st…
DBにどんなSQL文を送るかがコツと見た。とりあえず今日使ったのは以下の様な文。 SELECT * FROM table WHERE CAST ( int_value as varchar ) LIKE '_1%'; CASTってので、int型をchar型に変換してLIKEでパターンマッチング。「_」は任意の一文字に対応してて…
諸々変換することが多い。 10進数→2進数:decbin() 2進数→10進数:bindec()
以下のような関数を使ってフォームの入力値に対して堅牢性を高めたい。 trim() addslashes() htmlspecialchars() md5()
PHPもPostgreSQLも日付に関してはかなり強引にやっても動く。ただPHP内で文字列を日付にするにはやっぱり作業は必要。おまじないは以下 int MONTH,DAY,YEAR; date("m-d-Y", mktime(0, 0, 0, MONTH, DAY, YEAR)); その月の最後の日を表したいときは翌月の0日…