●インストーラ : xampp
xampp

-PHP入門 Local
-php4.3 関数リファレンス
-phpでメール

英語マニュアル
ImageMagick Documentation
 Core

-エラーチェックを強制
error_reporting (E_NOTICE);

-入門
  日付表示<?php echo date("Y/m/d"); ?>

●基本文法

-定数
  定数定義: define("定数名", "値");
  使うときには 定数名 だけでOK

-文字列定数
  ダブルコーテーション  "初心者のための PHP入門"
  シングルコーテーション '初心者のための PHP入門'
  ヒアドキュメント    <<<END

-変数・配列
 変数は、先頭に$をつける。0-9A-Za-z, 0x7F-0xFF, _が使える。
 配列は、$配列名[添え字] 添え字は0から始まる。
 array(要素1,要素2、、、) : 要素を配列化する。
 連想配列
  array("要素名" => 値1,,,,) 

<?php
  $fruit = array("Apple" => "りんご", "Orange" => "みかん", "Grape" => "ぶどう");
  while(list ($key, $val) = each($fruit)) {
    print ("インデックスの $key は、$val です<br>\n");
  }
?>

-型
  boolean
  integer : 32bit signed int
  float : 14桁の数値
  string : " " or ' ' 文字列長制限なし。
   文字列の先頭が数字なら、演算可能(自動変換)

-演算
  + - * / % (剰余)
  == < > <= >= != <>
. 文字列の連結
  && || and or xor !

-条件判断 elseif に注意。eが入る。
  if (cond) { }
  elseif (cond) { }
  else { }

  switch(変数) {
  case "val1": operation; break;
  default: operation;
  }

-ループ
  while(cond) { }
  for ( ; ; ;) { }
  do { } while (cond);
   break;

連想配列の要素のループ
  foreach (配列 as $key => $value) { print ("$key, $value");}
  breakできない。

-文字列関数
 array(要素1,要素2、、、) : 要素を配列化する。
 explode(セパレーター, 文字列) : 文字列をセパレーターで分割し配列を返す。
 str_replace("検索文字列","置換文字列","元の文字列");

-関数定義
  function 関数名(引数 = デフォルト値) {
  処理;
  retrurn(返り値);
  }
   &引数 で、参照渡しになる。

●メール送信
mail ("Toアドレス", "件名", "本文1行目\n本文2行目\n");

セッション管理

MySQL関数
 サンプル

●オブジェクト指向
-オブジェクト定義
  class Shopping {
  var $item = "コンピュータ";
  var $price = 99800; // ここまでメンバ変数の設定

  function getTotal() {
  $tax = $this->price * 0.05;
  return $this->price + $tax;
  } // ここまでメソッドの定義
  }

-オブジェクト生成
  生成 $newShopping new Shopping();
  参照 $item = $newShopping->item


-日付関数
 unixtojd() UNIX時間(1790年1月1日からの秒数)をユリウス日に変換する
 jdtounix() ユリウス日を UNIX時間に変換する
 JDToJulian() ユリウス日をユリウス暦に変換する
 JulianToJD() ユリウス暦をユリウス日に変換する

 getdate()関数
 ローカル時間(局地的な時間の意味で、世界各国のそれぞれの地域の時間を表す)を参照するには、getdate()関数 を使います。この関数には 連想配列として、以下のようなインデックスが定義されています。
 second ---- 現在の秒を定義する
 mimutes --- 現在の分定義する
 hours ----- 現在の時定義する
 mday ------ 現在の月次の日付を定義する
 wday ------ 現在の曜日番号を定義する
 mon ------- 現在の月を定義する
 year ------ 現在の年を定義する
 yday ------ その年の通算日を定義する
 weekday --- 現在の曜日の文字列を定義する
 month ------- 現在の月の文字列を定義する

<?php
 $today = getdate();
 print("$today[year]年$today[mon]月$today[mday]日<br>\n");
 print("今年1月1日から $today[yday]日目です<br>\n");
 print("$today[weekday] $today[month]/$today[mday]/$today[year]");
?>

-date関数(書式指定付き)

<?php
 $today = date("Y/m/d l H:i:s");
 print($today);
?>

a --------- am または pm を定義する
A --------- AM または PM を定義する
d --------- 2桁の日付を定義する
D --------- 3文字の曜日 (Sun 〜 Sat) を定義する
F --------- フルスペルの英字で月を定義する
h --------- 12時間単位 (00 〜 12) の時間を定義する
H --------- 24時間単位 (00 〜 23) の時間を定義する
g --------- 先頭に 0 をつけない12時間単位 (0 〜 12) の時間を定義する
G --------- 先頭に 0 をつけない24時間単位 (0 〜 23) の時間を定義する
i --------- 2桁の分 (00 〜 59) を定義する
j --------- 先頭に 0 をつけない (0 〜 31)の日を定義する
l --------- フルスペルの英字で曜日を定義する
L --------- 閏年では 1 を、それ以外は 0 を返す
n --------- 先頭に 0 をつけない (0 〜 12) の月を定義する
m --------- 2桁のの月 (01 〜 12) を定義する
M --------- 3文字の月 (Jan 〜 Dec) を定義する
s --------- 2桁の秒 (00 〜 59) を定義する
S --------- 英文の序数を表わす接尾語 (th 〜 nd) を定義する
t --------- 指定した月の日数 (28 〜 31) を定義する
U --------- UNIX時間 (1970年1月1日からの秒数) を定義する
w --------- 数値で示す曜日 (0 〜 6) を定義する
y --------- 西暦の下2桁を示す年を定義する
Y --------- 西暦を4桁で示す年を定義する
z --------- その年の1月1日からの通算日を定義する
Z --------- タイムゾーンのオフセット秒 ( -43200 〜 43200まで)

*画像描画 (PHPにライブラリ GDが必要)
 jpeg, pngが使える。PHP4ではGIFは使えない。
 PHP文書そのものが画像の扱いとなる。

領域作成
<?php
 header("content-type: image/png");
 $image = imagecreate(100,100); # 横、縦サイズ

 $back = imagecolorallocate($image, 0, 0, 0);
 $red = imagecolorallocate($image, 255, 0, 0)
 imagepolygon( $image, array( 10, 80, 80,80, 80, 10 ), 3, $red );

 imagepng($image); # ブラウザに出力
 imagedestroy($image);
?>