|
|
|
ここではPHPの基本について簡単ですが解説します。随時更新もしていきたいと思います。
[言語リファレンス] [PHPの関数] [Webフォームのコントロール] [クラス定義] [エラー処理]
|
|
日付・時刻の操作 |
|
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()を使用 |
|
Copyright (C)2006 TwoNess,inc. All rights
reserved. |
|