読者です 読者をやめる 読者になる 読者になる

Webデザインの勉強 ハロートレーニング 受講生のためのWebデザインの勉強補足ブログ

標準関数

日付関数

  • 日時を扱う標準関数
date関数
  • date関数は、指定した日付のフォーマットで文字列を変換する関数です



日付フォーマットに変換された文字列 = date( 日付フォーマット, 【タイムスタンプ】);

  • タイムスタンプとは、GMT:グリニッジ標準時(1970年1月1日0時0分0秒)からの通算秒数です。
  • 【タイムスタンプ】を省略した場合は、現在の日付時刻(time( ))となります。


フォーマット文字列

  • 「2013/09/25」のような日付の表示を指定する

指定値 説明 戻り値の例
Y 年(4桁) 2012
y 年(2桁) 12
m 月(2桁) 04
n 4
d 日(2桁) 09
j 9
g 時(12時間単位) 4
G 時(24時間単位) 16
h 時(12時間単位で2桁) 04
H 時(24時間単位日2桁) 16
i 分(2桁) 06
s 秒(2桁) 46
a 午前または午後(小文字) pm
A 午前または午後(大文字) PM
L うるう年かどうか 1:うるう年 0:うるう年以外
t 月の日数 28から31
U UNIXタイムスタンプ 1335768642
w 曜日(数値) 0:日曜〜6:土曜
W 1年で何週目か 11
z 1年で何日目か 11

<?php
  echo date ( 'Y/m/d H:i:s' );
  echo '<br>';

  echo date ( 'Y/m/d H:i:s', time() );
  echo '<br>';

  echo date ( 'Y年m月d日 H時i分s秒' );
  echo '<br>';

  echo date ( 'y-n-j Ah時i分s秒' );
  echo '<br>';
  
  $week = array ( '日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日' );
  echo '今日は' . $week[date ( 'w' )] . 'です';
mktime関数
  • mktime関数は、現在から一週間後、二ヵ月後 等の日付時刻を取得したい場合に使用する関数です
  • この関数で取得した値をdate関数の引数【タイムスタンプ】として設定することにより、過去・未来の日付時刻が取得できます



タイムスタンプ = mktime ( 時間, 分, 秒, 月, 日, 年 );

<?php
  // 現在日付時刻を設定
  $year = date ( 'Y' );
  $month = date ( 'm' );
  $day = date ( 'd' );
  $hour = date ( 'G' );
  $minute = date ( 'i' );
  $second = date ( 's' );

  // 一週間後を設定
  $OneWeekLater = mktime ( 0, 0, 0, $month, $day + 7, $year );
  echo '一週間後は' . date ( 'Y/m/d', $OneWeekLater ) . 'です<br>';
  
  // このように書いても同じ結果です
  echo '一週間後は' . date ( 'Y/m/d', mktime ( 0, 0, 0, date ( 'm' ), date ( 'd' ) + 7, date ( 'Y' ) ) ) . 'です<br>';

  // 今年の7月末日を設定
  // (引数の「日」に0を設定すると、前月の末日が自動設定されます。)
  $JulyLast = mktime ( 0, 0, 0, 8, 0, $year );
  echo '今年の7月末日は' . date( 'y年m月d日', $JulyLast ) . 'です<br>';

  // 5日後の1時間前を設定
  $Before = mktime ( $hour - 1, $minute, $second, $month, $day + 5, $year );
  echo '5日後の1時間前は' . date ( 'y年m月d日 H時i分s秒', $Before ) . 'です<br>';

文字列操作関数

  • 文字列を操作する関数
str_replace関数
  • 文字列中の指定文字列を置換する関数です



置換処理された文字列 = str_replace( 置換したい文字列, 置換後の文字列, 置換対象の文字列【, 置換回数(PHP5から対応)】);

<?php
  // 'C言語'を'java'に置換
  //「PHPを学習中。javaも学習したいです。」が出力されます
  echo str_replace ( 'C言語', 'java', 'PHPを学習中。C言語も学習したいです。' ) . '<br>';

  // 配列に文字列を格納
  $bef_lang = array ( 'PHP', 'java' );
  $aft_lang = array ( 'HTML', 'VB' );
  // 配列の要素を置換
  //「HTMLもVBも楽しいです。」が出力されます
  echo str_replace ( $bef_lang, $aft_lang, 'PHPもjavaも楽しいです。' ) . '<br>';
  
  // 引数「置換したい文字列」が配列で、引数「置換後の文字列」が文字列の場合、
  // 「置換後の文字列」で「置換したいの文字列」すべてを置換します。
  $bef_color = array ( '赤い', '青い' );
  $aft_color = '黄色い';
  $kekka = str_replace ( $bef_color, $aft_color, '赤い帽子、青いレインコートを持っています。' );
  //「黄色い帽子、黄色いレインコートを持っています。」が出力されます
  echo $kekka . '<br>';
  
  // 置換した回数を出力
  str_replace ( 'b', '@', 'abcdbdcsbedbsgbcdbtsb', $count );
  // 「7」が出力されます
  echo $count;
substr関数
  • 文字列から指定文字列を抽出する関数です


抽出された文字列 = substr ( 抽出元の文字列, 抽出開始位置, 【抽出する文字数】);

<?php
$banban = substr ( 'Homepage', 4, 4);
  echo $banban;

printf, sprintf関数
  • printf関数は、指定フォーマットで整形した文字列を出力する関数です。
  • sprintf関数は、指定フォーマットで整形した文字列を戻り値として返す関数です



printf( 指定フォーマット文字列, フォーマットしたい文字列・数値【, フォーマットしたい文字列・数値・・・】);



フォーマットした文字列 = sprintf( 指定フォーマット文字列, フォーマットしたい文字列・数値【, フォーマットしたい文字列・数値・・・】);

  • 数字を出力する場合、「%d」のような変換指定子というものを使用する必要があります

変換指定子 説明
d 10進数として表現します。桁数を指定する場合は、「%02d」のように指定します。
f 浮動小数点数として表現します。小数点以下の桁数を指定する場合は、「%.4f」のように桁数を指定します。
s 文字列として表現します

<?php
  // 小数点以下2桁を表示
  printf ( '%.2f<br>', '3.1415926535' );
  
  // %02d と指定すると、1桁の場合、頭に0を付加して表示
  printf ( '%02d時%02d分%02d秒<br>', 8, 7, 15 );
  
  // 数値と文字列を同時に指定
  $str = sprintf ( '私は、%02d月%02d日に%sへ行きます。', 10, 9, '九州' );
  print $str;
sscanf関数
  • sprintf関数とは逆に、指定フォーマットに従い文字列を取得する関数です



配列 = sscanf ( 文字列, 指定フォーマット文字列【, &変数, &変数, &変数】);

<?php
  // list関数を使用して、各変数に代入
  list( $year, $month, $day ) = sscanf( '2009-08-02', '%d-%d-%d' );
  echo $year . '<br>';
  echo $month . '<br>';
  echo $day . '<br>';

  // 配列$dateに格納
  $date = sscanf( '2008 July 09', '%d %s %d' );
  echo $date[0] . '<br>';
  echo $date[1] . '<br>';
  echo $date[2] . '<br>';
explode関数
  • 文字列を、ある指定文字列で区切り、配列要素として格納する関数です



配列 = explode( 区切り文字列, 文字列【, 区切り回数】);

<?php
  // 文字列'2013/09/30'を'/'で分解
  $date = explode( '/', '2013/09/30'  );

  echo $date[0] . '<br>';
  echo $date[1]. '<br>';
  echo $date[2]. '<br>';
implode関数
  • explode関数とは逆に、配列を指定文字列で結合する関数です



結合した文字列 = implode( 結合する文字列, 配列 );

<?php
  // 配列に値を格納
  $date = array ( '2013', '09', '30' );
  
  // 配列の要素を'/'で結合
  $ret = implode ( '/', $date  );
  echo  $ret . '<br>';
str_repeat関数
  • 指定文字列を繰り返したい場合に使用する関数です



繰り返された文字列 = str_repeat( 文字列, 繰り返し回数 );

<?php
  $ret = str_repeat ( '', 8 );
  echo $ret . '<br>';

  echo str_repeat( '★ ★', 3 );
trim関数
  • trim関数は、文字列の先頭、末尾にある空白を取り除く関数です
  • 全角の空白は変換されませんので、注意してください
  • 文字列の先頭のみ空白を取り除きたい場合は「ltrim」、末尾のみ空白を取り除きたい場合は「rtrim」を使用してください



空白を取り除いた文字列 = trim( 文字列【, 空白以外に取り除きたい文字列】);

<?php
  $space = ' s p a c e ';
  $tab = ' t a b\t';

  echo '変換前(半角スペース):「' . $space . '」<br>';
  echo '変換前(タブスペース):「' . $tab . '」<br>';

  // 先頭と末尾の半角スペースを除去
  $buff = trim ( $space );
  echo '変換後(半角スペース):「' . $buff . '」<br>';

  // 先頭と末尾のタブスペースを除去
  $buff = trim ( $tab );
  echo '変換後(タブスペース):「' . $buff . '」<br>';

  // 先頭のみ半角スペースを除去
  $buff = ltrim ( $space );
  echo '変換後(先頭):「' . $buff . '」<br>';
  
  // 先頭と末尾の半角スペースと's p a'を除去
  $buff = trim ( $space, 's p a' );
  echo '変換後(s p a):「' . $buff . '」<br>';
mb_convert_kana関数
  • 全角を半角に変換等、英数字・ひらがな・カタカナ・スペースを変換する関数です。漢字は変換対象外です



変換された文字列 = mb_convert_kana( 変換したい文字列【, 変換オプション文字, エンコーディング】);

変換

オプション

文字
説明
a 「全角英数字」を「半角英数字」に変換します
A 「半角英数字」を「全角英数字」に変換します
c 「全角カタカナ」を「全角ひらがな」に変換します
C 「全角ひらがな」を「全角カタカナ」に変換します
h 「全角ひらがな」を「半角カタカナ」に変換します
H 「半角カタカナ」を「全角ひらがな」に変換します
k 「全角カタカナ」を「半角カタカナ」に変換します
K 「半角カタカナ」を「全角カタカナ」に変換します
n 「全角数字」を「半角数字」に変換します
N 「半角数字」を「全角数字」に変換します
r 「全角英字」を「半角英字」に変換します
R 「半角英字」を「全角英字」に変換します
s 「全角スペース」を「半角スペース」に変換します
S 「半角スペース」を「全角スペース」に変換します
V "K"、"H"と合わせて使用し、濁点つきの文字を1文字に変換します

<?php
  // 全角英数字を半角英数字に変換
  echo mb_convert_kana ( '123mail123@aaa.co.jp', 'a', 'UTF8' ) . '<br>';

  // 半角カタカナを全角カタカナに変換
  echo mb_convert_kana ( 'カタカナ', 'K', 'UTF8' ) . '<br>';

  // 半角カタカナを全角カタカナに変換
  echo mb_convert_kana ( 'ザジズゼゾパピプペポ', 'KV', 'UTF8' ) . '<br>';

  // 半角カタカナを全角ひらがなに変換
  echo mb_convert_kana ( 'ザジズゼゾパピプペポ', 'HV', 'UTF8' ) . '<br>';
strlen関数
  • 文字列の長さ(バイト数)を取得する関数です



文字列の長さ = strlen( 文字列 );

<?php
  echo '「123mailあいう」の文字列長は、' . strlen ( '123mailあいう' ) . 'です';

数値操作関数

max、min関数
  • max関数とmin関数は、最大値、最小値を算出する関数です



最大値 = max ( 数値, 数値, 数値,・・・ );
最小値 = min ( 数値, 数値, 数値,・・・ );



最大値 = max ( 数値が格納されている配列 );
最小値 = min ( 数値が格納されている配列 );

<?php
  // 最大値654が出力されます
  echo max ( -8, 79, 10, 654, -1 ) . '<br>';

  // 最小値-8が出力されます
  echo min ( -8, 79, 10, 654, -1 ) . '<br>';

  $num = array ( 95, -11, 'abc', 102, 20 );

  // 最大値(配列)102が出力されます
  echo max ( $num ) . '<br>';

  // 最小値(配列)-11が出力されます

  echo min ( $num );
ceil、floor、round関数
  • ceil関数、floor関数、round関数は、小数点を切上げ、切捨て、四捨五入する関数です



切上げされた数値 = ceil ( 変換したい数値 );


切捨てされた数値 = floor ( 変換したい数値 );


四捨五入された数値 = round ( 変換したい数値【, 小数点以下の桁数】 );

<?php
  $num = 64.7583;

  // 切上げされた65が出力されます
  echo ceil ( $num ) . '<br>';

  // 切捨てされた64が出力されます
  echo floor ( $num ) . '<br>';

  // 四捨五入された65が出力されます
  echo round ( $num ) . '<br>';

  // 小数第2位で四捨五入された64.76が出力されます
  echo round ( $num, 2 ) . '<br>';
rand関数
  • 乱数(予測不可能なランダムな数値)を算出する関数です



乱数 = rand (【最小値, 最大値】);

<?php
  // -100から222の範囲の乱数を表示
  $num = rand ( -100, 222 );
  echo $num;
number_format関数
  • 数値を指定フォーマットに従い変換する関数です



変換された文字列 = number_format( 数値【, 小数点以下の桁数, 小数点の文字(デフォルトはドット), 桁区切りの文字(デフォルトはカンマ)】);

<?php
  $num = 9876541234.529713;

  // 引数「小数点以下の桁数」が省略されているため、整数に四捨五入されます
  // 引数「桁区切りの文字」が省略されているため、桁区切り文字はカンマで出力されます
  $ret = number_format ( $num ) . '<br>';
  echo $ret;
  
  // 9-876-541-234#530 が出力されます
  $ret = number_format ( $num, 3, '#', '-' );
  echo $ret;

広告を非表示にする