ここではPHPの基本について簡単ですが解説します。随時更新もしていきたいと思います。

[言語リファレンス] [PHPの関数] [Webフォームのコントロール] [クラス定義] [エラー処理]

PHPの関数

日付・時刻の操作
1) 現在の日時を取得
time()とgetdate()を使用
  <?php

    //現在時刻をUnixエポック(1970年1月1日 00:00:00 GMT)からの通算秒 として返します。
    print time();  //1970年1月1日 00:00:00からの経過秒数を表示

    //日付/時刻情報の取得
    $date = getdate();  //システム日付は連想配列として格納
    print $date['year'] ."年";  //システム日付の西暦年4桁を表示
    print $date['mon'] . "月";  //システム日付の月(1〜12)を表示
    print $date['mday']. "日";  //システム日付の日(1〜31)を表示
    print $date['hours']. "時";  //システム日付の時(0〜23)を表示
    print $date['minutes']. "分";  //システム日付の分(0〜59)を表示
    print $date['seconds']. "秒";  //システム日付の秒(0〜59)を表示
    print $date['weekday'];  //システム日付の曜日を表示
    print $date['wday'];  //システム日付の曜日(0:日曜〜6:土曜)

  ?>


2) 日付の妥当性チェック
checkdate()を使用
bool checkdate ( int month, int day, int year )で指定された日付が有効であればTRUEを返し、そうでなければFALSE を返します。引数で指定された日付の妥当性をチェックします。
  <?php

    //2006年6月31日のチェック。結果はFALSEとなります。
    if (checkdate(6, 31, 2006)) {
        print "2006年6月31日の日付は正しいです。";
    }else{
        print "2006年6月31日の日付は存在しません";
    }

  ?>


3) 書式化した日付
date()を使用
string date ( string format [, int timestamp] )
主なformat パラメータ文字列は下記の通りです。
format 文字
内 容
 Y  年。4 桁の数字。
 y  年。2 桁の数字。2006年だと06。
 m  月。数字。先頭にゼロをつける。
 d  日。二桁の数字(先頭にゼロがつく場合も)
 a  午前または午後(小文字)。amまたはpm
 A  午前または午後(大文字)。AMまたはPM
 g  時。12時間単位。先頭にゼロを付けない。
 G  時。24時間単位。先頭にゼロを付けない。
 h  時。12時間単位。先頭にゼロを付ける。
 H  時。24時間単位。先頭にゼロを付ける。
 i  分。先頭にゼロをつける。
 s  秒。先頭にゼロをつける。

  <?php

    //yyyy年mm月dd日 24hh:mm:ss形式で現在日付を出力
    $date = time();
    print date( 'Y年m月d日 H:i:s', $date );

  ?>

4) 7日前の日付の算出
mktime()を使用
int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
is_dstで増減値を指定して引数は右から順に省略することができます。
  <?php

    //2006年5月6日の7日前の算出
    print date( 'Y年m月d日', mktime(0, 0, 0, 5, 6, 2006, -7) );

  ?>

文字列操作
1) 文字列の長さ(Byte単位)取得
strlen()を使用
  <?php

    //文字列:山田太郎123の文字Byte算出(結果は11Byte)
    $lenb = strlen("山田太郎123");
    print "山田太郎123の文字列の長さは " . $lenb . "Byteです";

  ?>

2) 日本語文字数の取得
mb_strlen()を使用
  <?php

    //文字列:山田太郎123の文字数(結果は7文字)
    $mb_len = mb_strlen("山田太郎123");
    print "山田太郎123の日本語文字数は " . $mb_len . "文字です";

  ?>

3) 文字列の取り出し
substr()を使用
string substr ( string string, int start [, int length] )
start=0:1Byte目〜
  <?php

    //文字列:"abcdefghijk"文字の5Byte目から2Byteを取得(結果はef)
    $str_substr = substr("abcdefghijk", 4, 2);
    print "5Byte目から2Byteの文字は" . $str_substr . "です";

  ?>

4) 日本語文字数の取り出し
mb_substr()を使用
string mb_substr ( string str, int start [, int length [, string encoding]] )
start=0:1文字目〜
  <?php

    //文字列:山田太郎123の4文字目から2文字を取得(結果は郎1)
    $str_substr = mb_substr("山田太郎123", 3, 2);
    print "3文字目から2文字は" . $str_substr . "です";

  ?>

5) 文字列を置換する
str_replace()を使用
mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )
subject の中の search を全て replace に置換
  <?php

    //文字列:山田太郎123の123をさんに置換得(結果は山田太郎さん)
    $str_substr = str_replace("123", "さん", "山田太郎123");
    print "置換後は" . $str_substr . "です";

  ?>

6) スペースを除去する
trim()を使用
  <?php

    //文字列:" abcde fghijk "文字の前後空白をカットする(結果はef)
    $str_substr = trim(" abcde fghijk ");
    print $str_substr;

  ?>

7) HTMLタグを無効にする
htmlspecialchars()を使用

7) HTMLタグを取り除く
strip_tags()を使用

8) 配列から文字列を作成する
impode()を使用

9) 文字列から配列を作成する
expode()を使用

10) データベースへ渡す文字列の加工
addslashes()を使用

数値の加工
1) 四捨五入
round()を使用
float round ( float val [, int precision] )
  <?php

    print round(1.4); //少数点第一位を四捨五入(結果は1となります)
    print round(1.4, 0); //少数点第一位を四捨五入(結果は1となります)
    print round(1.5, 0); //少数点第二位を四捨五入(結果は2となります)
    print round(1.54, 1); //少数点第二位を四捨五入(結果は1.5となります)
    print round(1.56, 1); //少数点第二位を四捨五入(結果は1.6となります)

  ?>

2) 切捨て
floor()を使用
float floor ( float value )
  <?php

    print floor(1.4); //少数点以下を切捨て(結果は1となります)
    print floor(1.5); //少数点以下を切捨て(結果は1となります)
    print floor(1.54); //少数点以下を切捨て(結果は1となります)
    print floor(1.56); //少数点以下を切捨て(結果は1となります)

  ?>

3) 切上げ
floor()を使用
float ceil ( float value )
  <?php

    print ceil(1.4); //少数点以下を切上げ(結果は2となります)
    print ceil(1.5); //少数点以下を切上げ(結果は2となります)
    print ceil(1.54); //少数点以下を切上げ(結果は2となります)
    print ceil(1.56); //少数点以下を切上げ(結果は2となります)

  ?>

4) 数字を千位毎にグループ化してフォーマットする
number_format()を使用
string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )
  <?php

    print "\\" . number_format(1234567); //結果は\1,234,567となります

    print number_format(1234567.89); //結果は1,234,567となります

    print number_format(1234567.89, 2); //結果は1,234,567.89となります

  ?>

配列の操作
1) 配列のデータの並び替え
@昇順のソートはsort()/降順のソートはrsort()を使用
  <?php

    //sort()とrsort()
    $st_val = array("PHP","Apache","MySQL");

    //昇順のソート
    sort($st_val);
    foreach( $st_val as $temp_val) {
        echo "st_val[] = " . $temp_val;  //1.Apache 2.MySQL 3.PHPの順に出力されます
        print "<br>";
        ++$i;
    }

    //降順のソート
    rsort($st_val);
    foreach( $st_val as $temp_val) {
        echo "st_val[] = " . $temp_val;  //1.PHP 2.MySQL 3.Apacheの順に出力されます
        print "<br>";
        ++$i;
    }

  ?>

A連想配列を昇順でソートはasort()/降順でソートarsort()を使用
  <?php

    //配列の宣言
    $st_val = array("00001" => "ヤマダ タロウ", "00002" => "スズキ ハナコ", "00003" => "タナカ イチロウ");
    //昇順のソート
    asort($st_val);
    foreach( $st_val as $temp_val) {
        echo "st_val[] = " . $temp_val;  //1.スズキ ハナコ 2.タナカ イチロウ 3.ヤマダ タロウの順に出力されます
        print "<br>";
        ++$i;
    }

    //降順のソート
    arsort($st_val);
    foreach( $st_val as $temp_val) {
        echo "st_val[] = " . $temp_val;  //1.ヤマダ タロウ 2.タナカ イチロウ 3.スズキ ハナコの順に出力されます
        print "<br>";
        ++$i;
    }

  ?>

Bキーを昇順でソートはksort()/キーを降順でソートはkrsort()を使用
  <?php

    //配列の宣言
    $st_val = array("00003" => "タナカ イチロウ", "00001" => "ヤマダ タロウ", "00002" => "スズキ ハナコ");
    //昇順のソート
    ksort($st_val);
    foreach( $st_val as $temp_val) {
        echo "st_val[] = " . $temp_val;  //1.スズキ ハナコ 2.タナカ イチロウ 3.ヤマダ タロウの順に出力されます
        print "<br>";
        ++$i;
    }

    //降順のソート
    krsort($st_val);
    foreach( $st_val as $temp_val) {
        echo "st_val[] = " . $temp_val;  //1.ヤマダ タロウ 2.タナカ イチロウ 3.スズキ ハナコの順に出力されます
        print "<br>";
        ++$i;
    }

  ?>

2) 配列データの追加・削除
@末尾にデータを追加するにはarray_push()/末尾のデータを削除するにはarray_pop()を使用
  <?php

    //配列の宣言
    $st_val = array("PHP","Apache","MySQL");

    //末尾にデータを追加
    array_push($st_val, "VB", "Java");
    foreach( $st_val as $temp_val) {
        echo "st_val[] = " . $temp_val;  //PHP,Apache,MySQL,VB,Javaの順に出力されます
        print "<br>";
        ++$i;
    }

    //末尾からデータを削除
    array_pop($st_val);
    foreach( $st_val as $temp_val) {
        echo "st_val[] = " . $temp_val;  //PHP,Apache,MySQL,VBの順に出力されます
        print "<br>";
        ++$i;
    }

  ?>

A配列をマージするにはarray_merge()を使用
  <?php

    //配列の宣言
    $st_val1 = array("PHP","Apache","MySQL");
    $st_val2 = array("VB","Java","C++");


    //配列1と配列2をマージし結果を配列1に格納
    $st_val1 = array_merge($st_val1, $st_val2);
    foreach( $st_val1 as $temp_val) {
        echo "st_val[] = " . $temp_val;  //PHP,Apache,MySQL,VB,Java,C++の順に出力されます
        print "<br>";
        ++$i;
    }

  ?>


ファイルの操作
1) テキストファイルを読み込む
fread():ファイルの読込みを使用

2) テキストファイルにデータを書き込む
fwrite():ファイルの書き込みを使用

3) 文字コードを変換する
mb_convert_encoding()を使用

4) ファイルを削除する
unlink()を使用

5) ファイルをコピーする
copy()を使用

6) フォルダを作成する
mkdir()を使用

7) フォルダを削除する
rmdir()を使用


Copyright (C)2006 TwoNess,inc. All rights reserved.