SAK 図書館
CGI-Perl 基礎編 (その五) 文字列関数 substr、index、split、localtime、crypt
■文字列演算子
. 文字列の結合
【例】
$a = 'abc';
$b = 'def';
$c = $a . $b;
** $c には、'abcdef' がセットされます。
■文字列関数
lc 小文字に変換
uc 大文字に変換
substr n 番目から n バイトの文字列を切り出し
length 何バイトあるか数える
index 指定文字列が何番目から存在するか調べる
rindex 指定文字列が最後から何番目に存在するか調べる
sprintf 書式指定変換をする
chomp 最後の CR/LF 除去
s 文字変換
tr 文字変換
split セパレータによる文字列分割
join 配列文字列結合
reverse 配列反転
localtime ローカル時間
crypt 文字列暗号化
■lc (小文字に変換)
【例】
$a = lc('ABC');
** $a には、'abc' がセットされます。
■uc (大文字に変換)
【例】
$a = uc('abc');
** $a には、'ABC' がセットされます。
■substr (文字列切り出し)
【例】
$a = substr('abcdef', 1, 3);
** $a には、'bcd' がセットされます。
** 位置は先頭が 0、文字数はバイト単位です。
■length (文字列バイト長)
【例】
$i = length('abcdef');
** $i には、6 がセットされます。
** 長さはバイト単位です。
■index (文字列検索)
【例】
$i = index('abcdef', 'bcd'[, 0]);
|_ 検索開始位置は省略すると 0
** $i には、1 がセットされます。
** 検索結果位置は先頭が 0 です。
■rindex (文字列後方検索)
【例】
$i = rindex('abcdab', 'ab');
** $i には、4 がセットされます。
** 検索結果位置は先頭が 0 です。
■sprintf (文字列書式フォーマット)
【例】
$a = sprintf('a = %06d b = %04d', 10, 20);
** $a には、'a = 000010 b = 0020' がセットされます。
** 書式記号は C 言語と同じみたいです。
■chomp (最後の CR/LF 除去)
【例】
$a = chomp("abc\n");
** $a には、'abc' がセットされます。
■s (文字変換)
【例】
$a =~ s/ //g; #// 半角空白を削除
$a =~ s/\,/\n/g; #// カンマを改行に変換
$a =~ s/a/b/g; #// a を b に変換
$a =~ s/\n//g; #// 改行コードの削除
$a =~ s/\n/ /g; #// 改行コードを半角空白に変換
■tr (文字変換)
【例】
$a =~ tr/a/b/; #// a を b に変換
$a =~ tr/a/b/c; #// a 以外を b に変換
$a =~ tr/ab/b/d; #// a を削除
$a =~ tr/a//s; #// a の連続を 1 文字に変換
■split (セパレータによる文字列分割、文字分割)
【例】
@a = split(/\,/, "abc\,defg\,hi");
** @a[0] = 'abc'、@a[1] = 'defg'、@a[2] = 'hi' とセットされます。
■join (配列文字列結合)
【例】
@a[0] = 'abc';
@a[1] = 'defg';
@a[2] = 'hi';
$b = join('', @a);
** $b には、'abcdefghi' がセットされます。
■reverse (配列反転)
【例】
@a[0] = 'abc';
@a[1] = 'defg';
@a[2] = 'hi';
@b = reverse(@a);
** @b[0] = 'hi'、@b[1] = 'defg'、@b[2] = 'abc' とセットされます。
$s = 'abcdef';
@w = split(//, $s);
@w = reverse(@w);
$s = join('', @w);
** $s の文字列を反転します。
■localtime (ローカル時間)
【例】
($ss, $mn, $hh, $dd, $mm, $yy) = localtime(time);
$yy += 1900;
$mm++;
$dttm = sprintf("%04d.%02d.%02d %02d:%02d:%02d", $yy, $mm, $dd, $hh, $mn, $ss);
** $dttm には、'2001.01.25 19:00:00' がセットされます。
(システム日付、システム時間、現在日付取得、現在時刻取得)
■crypt (文字列暗号化)
【例】
$s = crypt("abc012", "sk");
| | |_ 英数字 2 文字の暗号化キー
| |_ 通常文字列
|_ 暗号化文字列
** 暗号化を復元する関数はない。
従って、パスワードの比較などは、入力パスワードを同暗号化キーで暗号
化し、暗号化状態で比較する。
■CGI-Perl 基礎編資料
■CGI-Perl 基礎実地編資料
■CGI-Perl 応用実地編資料
■PHP 基礎編資料
■PHP + MySQL 編資料