正式名称は「PHP: Hypertext Preprocessor」。Rasmus Lerdorfが1994年に考案。当初はPersonal Home Page Tools (PHP Tools)と呼ばれていた(プログラミングPHP 第2版参照)。

インストール

LAMP環境を作るXAMPP参照。

エディタ

VimとかEmacsとか。

PHPの設定

php.ini

場所は/etc/php.iniとか。

phpinfo

[php]

<?php

phpinfo();

?>

[/php]

というファイルを作ってブラウザでアクセスする。

CUIの場合はphp -i(または–info)と打つ。

ファイルごとの設定

インクルードパス

/hoge/fugaをインクルードパスに加えたい場合はファイルに

[php]

ini_set(‘include_path’, ini_get(‘include_path’).”:/hoge/fuga”);

[/php]

を加える。

コマンドライン

ワンライナー

Repl

パスワード入力

演算子

変数・定数

どこまでが変数名か明示するためには波括弧を使う。

[php]

echo “{$n}th”;

[/php]

[php]

${open_basedir}

[/php]

PHPの精度

配列

多次元配列の変数展開は、配列全体を波括弧で囲む。

[php]

echo “2の1成分は{$multi[2][0]}です”;

[/php]

配列から空要素を取り除く

文字列

エスケープシーケンス

WikipediaのASCIIコードの表

文字の ASCII 値を返す – ord

文字列の$i番目の文字を抜き出すには

[php]

$str = ‘hello”;

$str{$i};

[/php]

とする。

正規表現

URLを自動でリンク

[php]

function autoLink($subject) {

$pattern = “/(https?|ftp)(:\/\/[[:alnum:]-_.!~*‘();\/?:@&=+$,%#]+)/u”; //uはUTF-8エンコードされた文字列を扱うためのPCRE 修飾子

$replacement = ‘$1$2’;

return preg_replace($pattern, $replacement, $subject);

}

[/php]

Perlメモによると、URLの正規表現を正確に表現すると非常に複雑になるが、簡単に書くと上記のようになる。

メモ

クラス

PHP でバイナリプログラミング

pack — データをバイナリ文字列にパックする – cf. [[perl] pack, unpackで16進文字列を扱うメモ]36

header()

Warning: Cannot modify header information - headers already sent by ...

header()を使うとしばしば見るエラー。

header()の前に出力があるとエラーが出る。includeしているファイルの<?php … ?>の上下に空白があったり、BOMつきだとエラーが出る。exitを後に付けるとよい?

output_bufferingをOnにするとよいらしい(header関数 : PHP | FindxFine -Web制作に関するメモ-)。

header()でURLをパラメータに持つURLを転送先にすると、だめっぽい?$_SERVER['PHP_SELF']で得た値だとダメ?GETで渡すURLをrawurlencode()で変換すると、良くなった。

GET & POST

PDO

メモ

セッションを使った方法

初心者向けPHP5でつくるログイン機能のサンプルアプリケーションを参考にしてみたが、サーバーがセーフモードにしていたのでセッションがうまく使えなかった。ここに解決策が書いてあるがうまくいかなかった。

クッキーを使った方法

[php] パスワード認証ログインシステムのサンプル参照。

GD

画像を扱うライブラリ。

pChart

グラフを簡単に作ることができる。GDが必要。

Xdebug