他にもマルチバイト文字列の扱いとか色々あるが、
ここでは文字列操作の一部を載せることにする。
文字列を辞書式の順序で比較する:
strcmp()
例:strcmp("abc","ABC");
返り値:0→同じ文字、1→最初の引数が後の引数よりも大きい、-1→最初の引数が後の引数よりも小さい。この場合、1。
文字列を連結:
文字列を連結するには連結演算子の.を使う。
例:$str = "sample";
$str."ketugou"
返り値:この場合はsampleketugou
配列要素を連結:
implode()
例:$sample = array("test1","test2","test3");
implode(",",$sample);
返り値:この場合はtest1,test2,test3
文字列が等価かどうかの比較:
phpでは比較は==で行える。javaよりも型は緩いので
例:$str == 'test'
返り値:正しいときtrue,違うときfalse。型を含めて同じかどうかを調べたいときには===を使う。
文字列の最初のインデックスを探す:
例:$a = 'sample'
$b = 'am'
strpos($a,$b)
返り値:見つかったときはtrueで、引数が呼び出し元の中で最初に出てくる位置(インデックス)を返す。
無いときはtrue。上記の場合は1が返り値。日本語のようなマルチバイト文字列にはmb_strpos()が有効。
文字列の長さ:
strlen()
例: $a = 'sample'
strlen($a)
返り値:その文字の長さ。この場合6。
文字列を分割する:
explode(),split()
例:$sample = "sample1,sample2,sample3,sample4";
$words = explode(",",$sample);
echo $words[0];
この時、sample1が表示される。
文字列の一部を切り取る:
substr()
例:$str = "sample";
substr($str,2,4)
返り値:これはバイト数で指定するやり方。第2引数から第3引数の文字列の長さ分切り取る。この場合mple。
尚、文字列の数で切り取りたい場合にはmb_substr()を使う。
マイナスの値を指定して文字列の一部を削ることもできる。
ちなみに文字列を配列に格納するのに使用できるのは
str_split($文字列,長さ[省略化]);
マルチバイトのケースはhttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1417635014を参照。
長さを指定して、文字列を置換する:
substr_replace()
例:$sample = "sample";
$test = substr_replace($sample,"test",2,4);
echo $test;
この場合、3バイト目から4バイト分のデータが置換される。したがって、satestと表示される。
指定された文字列を置換する:
str_replace()
例:$sample = "sampledayo";
$test = str_replace("sample","test",$sample);
echo $test;
この場合testdayoと表示される。
$を含む場合だとうまく置換されないケースもあるので注意。
文字コードを変換する:
mb_convert_encoding(),iconv()
例:UTF-8からShift-JIS
mb_convert_encoding($str,"SJIS","UTF-8");
Shift-JISからUTF-8は素直にやるとうまくいかないケースがある(参考:http://pbs.darkgray.net/tips/tipshow.php?textserial=4)
mb_convert_encoding(str_replace('~', '~', $value), "UTF-8", "SJIS");で良いらしい。
置き換わる文字コードを探してくれたURL主には感謝です。
先頭と末尾の空白を取り除く
trim()
例:$sample = " sample";
trim($sample);
最終更新:2011年04月03日 11:42