外部ファイルをincludeしたい場合に、絶対パスではなくて、サイトルートからのパスで取得したい場面に出くわしました。調べたら、PHPにはサイトのルートを返してくれる便利なものがあるんですね。
こいつで一発でした。
覚えておこうっと。
PHPのコード最適化のエントリがあったので軽く読んでみた。
たくさんありすぎてなんともいえませんが、意識するようにはしたいなぁ。
33. if (strlen($foo) < 5) を調べたいなら if (!isset($foo{5})) と書くと速い。
これは知らなかった。
20番ぐらいまでは割とよく使いそうな感じなのでメモ。
- static にできるメソッドは static として宣言しよう。(4倍速い)
- echo の方が print より速い。
- echo ‘文’,'字’; (カンマ区切り)の方が、’文’.'字’ (ドット連結)より速い。
- ループの最大値は、ループ「内」ではなく「前」にセットしておこう。
- 大きい配列のような変数は unset ()してメモリを解放しよう。
- マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。
- require_once はハイコストなのです。
- include や require でファイルはフルパスで指定しよう。
- スクリプト開始時間は time() でなく $_SERVER[’REQUEST_TIME’] で取得。
- 可能であれば、正規表現より strncasecmp、strpbrk、stripos を使おう。
- strtr(str_replace の4倍速い) > str_replace > preg_replace の順に速い。
- 引数に配列、文字列両方を受け入れるような関数は避け、個別に関数化しよう。
- if をたくさん使ってるなら switch を活用しよう。(訳注:ってことでいい?)
- @によるエラー制御はすんごく遅い。
- Apache の mod_deflate(Apache2系) を ON にしておこう。(No.42 参照)
- 処理が終わったらデータベースの接続は切っておこう。
- $row[’id’] は $row[id] より7倍速い。
- エラーメッセージはハイコスト。
- for 文の条件式には count($array) のような関数をいれない。(変数に格納)
- メソッド内ではローカル変数をインクリメントするのが一番速い。
13が気になるなぁ。
switchはあんまり使わないからなぁ。
可読性が悪くならないようにうまいこと両立させていきたいな
すぐ忘れちゃうから、個人的に使うものをメモ
_FILE_
処理中のファイル名。
PHP_EOL
システムの改行コード(環境に依存)
DIRECTORY_SEPARATOR
ディレクトリのセパレータ(環境に依存)
PATH_SEPARATOR
パスのセパレータ(環境に依存)
PHP_VERSION
phpのバージョンを取得できる
忘れないのが一番いいんだけどね
アマゾンのWebサービスを使ってみたかったので、試してみました。
まずこの英語のページからアカウントを取得するのですが、そこで物凄くつまずきました。
何が必須項目なのかわからないし、エラーメッセージも英語なのを抜きにしても何を入力して欲しいのかまったくわかりませんでした。
いろいろためして、最終的に電話番号と郵便番号に「-」をいれたら通りました。
意味がわからなかった。
とりあえず、書いて検索ワードをもらって1ページ目の情報を表示するようなサンプル。
エラー時の処理とかはまったく入れてないです。
とりあえず動いた。
こちらのサイトさんに詳しくのってました→ajaxtower様
画像のAPIを使ったサンプルサイトを作ってみた。
検索ワードをいれると、フリッカーとYahooとフォト蔵APIの検索結果を表示してくれるだけ。
件数を絞ってないから異様に重いサイトになってしまった。
あと、なんとなくhighslide.jsを使ってみた。
これでとりあえすサムネイルを押すと拡大画像が表示された。
CSSをいじれば、見せ方をもっと変えれるらしい。
こちらのサイト様に詳しくのってました。
すごいJavaScriptだなぁ。