My Photo

« 第70期順位戦C級2組最終戦 #shogi | Main | ブッキス連戦 #FF11 »

March 08, 2012

PHPメモ014:文字列関数 その1

関数名に "mb_" というプレフィックスが付いている関数はマルチバイト文字を含む文字列を処理するための関数。
例えば mb_strstr() は strstr() のマルチバイト文字版である。

strint strstr(<文字列>, <パターン>)
strint mb_strstr(<文字列>, <パターン>)
文字列の中で最初にパターンが現れる場所から最後までを返す。見つからない場合はFALSEを返す。

int srtpos(<文字列>, <探すパターン>[, <オフセット>])
int mb_srtpos(<文字列>, <探すパターン>[, <オフセット>])
文字列のオフセットの位置から探し初めて最初にパターンが現れた位置を返す(0オリジン)。オフセットが省略された場合は文字列の先頭から探す(オフセット=0)。

int strrpos(<文字列>, <探すパターン>[, <オフセット>])
int mb_strrpos(<文字列>, <探すパターン>[, <オフセット>])
文字列の先頭からオフセットの位置までの間で最後にパターンが現れた位置を返す(0オリジン)。オフセットが省略された場合は文字列の末尾まで探す。

サンプルーコード
echo mb_strstr('ものすごくうるさくてありえないほど近い', 'ありえない');
echo "\n";
echo strpos('user@hogehogefoo.com', '@');
echo "\n";

// strpos()の戻り値が0の場合もあるので、判定は === や !== で行う。
if (FALSE !== strpos('http://www.hogehogefoo.com/', 'http://')) {
	echo 'URLはhttpである。';
} else {
	echo 'URLはhttpではない。';
}
echo "\n";

echo mb_strrpos('人民の人民による人民のための政治', '人民');
サンプルコードの出力
ありえないほど近い
4
URLはhttpである。
8

int strlen(<文字列>)
int mb_strlen(<文字列>)
文字列の長さを返す。

サンプルーコード
$a = 'the_silence_of_lambs';
$b = 'Ronove(ロノウェ)はソロモン72柱の序列27番';
echo $a . ':' . strlen($a);
echo "\n";
echo $b . ':' . mb_strlen($b);
echo "\n";
サンプルコードの出力
the_silence_of_lambs:20
Ronove(ロノウェ)はソロモン72柱の序列27番:26

strint substr(<文字列>, <開始位置>[, <長さ>]);
strint mb_substr(<文字列>, <開始位置>[, <長さ>]);
文字列の開始位置から長さ分の部分文字列を返す。長さが省略された場合は開始位置から末尾までの部分文字列を返す。

サンプルーコード
echo substr('entrepreneur', 3, 4);
サンプルコードの出力
repr

mixed sscanf(<文字列>, <フォーマット>[, <変数1>  ...]);
文字列をフォーマットに基づいてパースする。フォーマット以降のオプションの引数は参照渡し。
オプションの引数がない場合、戻り値は割り当てられた値の配列。オプションの引数がある場合、割り当てられた値がオプション引数に格納され、戻り値は割り当てられた値の数。

サンプルーコード
$a = ' 9 :Masashi Nakayama :1967.09.23';
$b = sscanf($a, '%2d :%s %s :%04d.%02d.%02d');
dispArray($b);
sscanf($a, '%2d :%s %s :%04d.%02d.%02d', $no, $fname, $lname, $year, $month, $day);
echo "${no}, ${fname}, ${lname}, ${year}, ${month}, ${day}";
echo "\n\n";

function dispArray($arr) {
	foreach ($arr as $key => $val) {
		echo '[' . $key . ']=>' . $val . ',';
	}
	echo "\n";
}
サンプルコードの出力
[0]=>9,[1]=>Masashi,[2]=>Nakayama,[3]=>1967,[4]=>9,[5]=>23,
9, Masashi, Nakayama, 1967, 9, 23

« 第70期順位戦C級2組最終戦 #shogi | Main | ブッキス連戦 #FF11 »

PHP」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/54172861

Listed below are links to weblogs that reference PHPメモ014:文字列関数 その1:

« 第70期順位戦C級2組最終戦 #shogi | Main | ブッキス連戦 #FF11 »

August 2017
Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof