MEMORVA

文字列の結合・分割

更新:

文字列の結合・分割などの処理。

文字列を連結する
print "test" . $test . "test";


文字列置換
・任意に置換
	str_replace(置換前の文字, 置換後の文字, 置換する文字列);
	$str = str_replace("\r\n", "<BR>", $str);


文字列分割
・指定した長さを取り出す
	・substr(対象文字列, 開始位置, 取り出す長さ)
		$str = substr($str, 3, 2);
	・全角文字を1文字とする場合
		文字コードを指定しないと正しい文字数で切り取れない
		$str = mb_substr($str, 3, 2, "SJIS");
・配列に分解
	・explode(分解に使う文字, 文字列)
		$str_array = explode(",", $str);
	・split(分解に使う文字/正規表現OK, 文字列)
		$str_array = split("/", $str);
・指定文字以降を取得
	・strstr(文字列, 指定文字)
		$str = "sample ABC test";
		$str_str = strstr($str, "ABC");
・指定したフォーマットで分解する
	$str = "2005-01-01 01:00:00";
	list($y, $m, $d, $h, $i, $s) = sscanf($str, "%d-%d-%d %d:%d:%d");


文字数チェック
・全角を2文字でカウント
	strlen($str);
・全角を1文字でカウント
 php.iniでmbstring.func_overload=2または3、6、7だとstrlenでもmb_strlenと同じ
 文字コードをしていしないとstrlenと同じになることがある
	mb_strlen($str, "SJIS");


文字検索・一致・出現回数
・一致した位置
	strpos(文字列, 検索文字列)
	strpos(文字列, 検索文字列, 検索開始位置)
	文字列の先頭から検索して、一致した位置を返す。
	先頭が0。
	戻り値:全く一致しなければ空文字、一致すれば0以上の整数。
		$count = strpos($_SERVER['HTTP_USER_AGENT'], "DoCoMo");
・一致した位置
	strrpos(文字列, 検索文字列)
	文字列の最後から検索して、一致した位置(先頭から数えた位置)を返す。
	検索位置は指定できない。
	戻り値:全く一致しなければ空文字、一致すれば0以上の整数。
・出現回数
	substr_count(文字列, 検索文字列)
	大文字・小文字の区別あり
	戻り値:全く一致しなければ0、一致すれば1以上の整数。
		$count = substr_count($_SERVER['HTTP_USER_AGENT'], "DoCoMo");
・正規表現を使う場合
	if(ereg("DoCoMo", $_SERVER['HTTP_USER_AGENT'])){
		print "一致";
	}else{
		print "不一致";
	}


空白文字を取り除く
\r、\n、\t、空白、\0などを取り除く
・文字列の先頭および末尾から除去する
	$data = trim($data);
・文字列の先頭から除去する
	$data = ltrim($data);
・文字列の末尾から除去する
	$data = rtrim($data);