トップページ > コンテンツ > プログラミング入門 > Ajax入門 > PHP入門 > PHP文字列操作

他にもマルチバイト文字列の扱いとか色々あるが、
ここでは文字列操作の一部を載せることにする。

文字列を辞書式の順序で比較する:
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