文字列の変換・エンコード・デコード

更新:

文字列の変換・エンコード・デコードなどの処理。

特定文字の変換
・<、>、&、"、'を&lt、&gt;、&amp、&quot;、&#039;に変える
	$str = htmlspecialchars($str);
	$str = htmlspecialchars($str, ENT_NOQUOTES);
	・オプション
		ENT_COMPAT:"変換、'無変換
		ENT_QUOTES:"変換、'変換
		ENT_NOQUOTES:"無変換、'無変換
		省略時は、ENT_COMPAT
・\r\n、\r、\nを<br />に変える
	$str = nl2br($str);
・タグを取り除く
	strip_tags(文字列, 取り除かないタグ)
	$str = strip_tags($str);
	$str = strip_tags($str, "<H1>");


文字のエスケープ
・addslashes
	'、"、\、NULLバイトの4つに\を付加する
	magic_quotes_gpcがONの場合、自動的に上記文字に\が付加される
	
	if(get_magic_quotes_gpc() == 0){
		$str = addslashes($str);
	}

・stripslashes
	'、"、\、NULLバイトの4つにある\を除去する

・php.ini
	magic_quotes_gpc off
		'や\などを自動的にエスケープしない。
	magic_quotes_gpc on 
		'や\などを自動的にエスケープする。
		サイトがSJISなら表能ソなど\(5C)を含む文字もエスケープされる。

・.htaccessで設定する場合
	php_flag magic_quotes_gpc off



文字コード変換
	mb_convert_encoding(対象文字列, 変換後のコード, 変換前の文字コード);
・変換例(変換前の文字コード自動判別)
	$str_encoded = mb_convert_encoding($str, "UTF-8");
・変換例(変換前の文字コード指定) / 分かるなら指定した方がいい
	$str_encoded = mb_convert_encoding($str, "UTF-8", "SJIS");
・文字コードコード
		ASCII
		SJIS
		JIS
		EUC-JP
		UTF-8


暗号化・エンコード・デコード
・URL
	・URLエンコード
		$str = urlencode($str);
	・URLデコード
		$str = urldecode($str);
・Base64
	・エンコード
		$str = base64_encode($str);
	・デコード
		$str = base64_decode($str);
・crypt
	$str_crypt = crypt($str, "samplestr");
・ROT13 / アルファベットのみ変換。13文字シフト。
	$str_rot13 = str_rot13($str);
・MD5
	$str_md5 = md5($str);
・SHA1
	$str_sha1 = sha1($str);


全角・半角の変換(カタカナ・ひらがな・英数字)
mb_convert_kana(変換文字列, オプション, [エンコーディング]);
・オプション
	各オプションは、併用できる。
		k:全角カタカナから半角カタカナ
		K:半角カタカナから全角カタカナ
		h:全角ひらがなから半角カタカナ
		H:半角カタカナから全角ひらがな
		c:全角カタカナから全角ひらがな
		C:全角ひらがなから全角カタカナ
		V:濁点を一文字にする(Kなどとともに使う)
		r:全角英字から半角英字
		R:半角英字から全角英字
		n:全角数字から半角数字
		N:半角数字から全角数字
		a:全角英数字から半角英数字
		A:半角英数字から全角英数字
		s:全角スペースから半角スペース
		S:半角スペースから全角スペース
・エンコーディング
	変換する文字列の元のエンコーディングを指定
	省略可能
		SJIS、EUC-JPなど
・半角カタカナを全角カタカナに変換する例
	$str = "オプション";
	$str1 = mb_convert_kana($str, K);
	$str2 = mb_convert_kana($str, KV);
	
	$str1は、「オフ゜ション」になる。
	$str2は、「オプション」になる。


大文字・小文字の変換
mb_convert_case(変換文字列, オプション, [エンコーディング])
・オプション
	MB_CASE_UPPER:大文字に変換
	MB_CASE_LOWER:小文字に変換
	MB_CASE_TITLE:頭文字を大文字に変換
・エンコーディング
	変換する文字列の元のエンコーディングを指定
	省略可能
		SJIS、EUC-JPなど
・小文字を大文字に変換する例
	$str = "ABCDabcd;
	$str = mb_convert_case($str, MB_CASE_UPPER);
・その他
	大文字に変換:mb_strtoupper(変換文字列, [エンコーディング])
	小文字に変換:mb_strtolower(変換文字列, [エンコーディング])
このエントリーをはてなブックマークに追加