PHP 文字列を操作するサンプル

Pythonの文字列を操作するサンプルです。

目次

結合する 文字列を結合する(. 結合演算子)
  文字列を追加する(.= 結合代入演算子)
取得する 指定した位置の文字列を取得する(mb_substr/substr)
  文字列の位置を取得する(mb_strpos/strpos)
  文字列を繰り返す(str_repeat)
  文字列内で変数を展開する({変数})
  文字列の長さを取得する(mb_strlen/strlen)
削除する 前後の半角の空白を削除する(trim)
並び順 文字列の並び順を逆順にする(strrev)
  文字列の並び順をランダムにする(str_shuffle)

文字列を結合する(. 結合演算子)

<?php
	print ("あ" . "い"); //あい

	$a = "う";
	$b = "え";
	print ($a.$b); //うえ
?>

ドット(.)は、文字列を結合します。

文字列を追加する(.= 結合代入演算子)

<?php
	$a = "あ";
	$a .= "い";
	print ($a); //あい
?>

結合代入演算子(.=)は、文字列を追加します。

指定した位置の文字列を取得する(mb_substr/substr)

<?php
	print mb_substr("あいう",0,1); //あ
	print mb_substr("あいう",1,1); //い
	print mb_substr("あいう",2,1); //う

	print substr("abc",0,1); //a
	print substr("abc",1,1); //b
	print substr("abc",2,1); //c
?>

日本語のときは、mb_substrを使用します。
1つめの引数は開始位置で、2つめの引数は取得する文字列の長さです。

文字列の位置を取得する(mb_strpos/strpos)

<?php
	$a = "あいう";
	var_dump(mb_strpos($a,"あ")); //int(0)
	var_dump(mb_strpos($a,"い")); //int(1)
	var_dump(mb_strpos($a,"う")); //int(2)
	var_dump(mb_strpos($a,"か")); //bool(false)

	$b = "abc";
	var_dump(strpos($b,"a")); //int(0)
	var_dump(strpos($b,"b")); //int(1)
	var_dump(strpos($b,"c")); //int(2)
	var_dump(mb_strpos($b,"f")); //bool(false)
?>

2行目は、日本語の文字列です。
3~5行目は、mb_strposで位置を数値で表示しています。最初の位置は0です。
6行目は、$aに指定の文字(か)が存在しないのでfalseが表示されます。

8行目は、英字の文字列です。
9~11行目は、strposで位置を数値で表示しています。最初の位置は0です。
12行目は、$bに指定の文字(f)が存在しないのでfalseが表示されます。

文字列を繰り返す(str_repeat)

<?php
	print str_repeat("あ",2); //ああ
	print str_repeat("あいう",2); //あいうあいう
?>

str_repeat関数は、2つめの引数の数だけ文字列を繰り返します。

文字列内で変数を展開する({変数})

<?php
	$a = "赤";
	print "選択した色は{$a}です"; //選択した色は赤です
	print '選択した色は{$a}です'; //選択した色は{$a}です
?>

3行目は、ダブルコーテーションで文字列を囲みその中の波括弧({})の中に変数を指定しています。結果は変数の値が表示(展開)されます。
4行目も波括弧({})の中に変数を指定していますが、シングルコーテーションでいるため変数は展開されません。

文字列の長さを取得する(mb_strlen/strlen)

<?php
	print mb_strlen("あいう"); //3
	print strlen("abc"); //3
?>

日本語のときは、mb_strlenで文字列の長さを取得します。

前後の半角の空白を削除する(trim)

<?php
	$a = " abcde ";
	print strlen(trim($a)); //5
	print trim($a); //abcde

	$b = "abcde ";
	print strlen(rtrim($b)); //5
	print rtrim($b); //abcde
?>

2行目は、文字列の前後に半角の空白(スペース)があります。
3行目は、trimで前後の空白を削除しているので長さは5です。
全角空白は取り除きません。

rtrimは、文字列の右側の空白やタブや改行等を削除します。
fgets関数を使用すると文字列の最後に改行が入りますが、その改行を削除する場合はrtrimを使用します。

ltrimまたはchopであれば左側の空白を削除します。

文字列の並び順を逆順にする(strrev)

<?php
	$a = "abcde";
	print strrev($a); //edcba
?>

strrevは、文字列の並び順を逆順にします。
日本語に対応したmb_strrevはありません。

文字列の並び順をランダムにする(str_shuffle)

<?php
	$a = "abcde";
	print str_shuffle($a); //cbade
?>

str_shuffleは、文字列の並び順をランダムにします。
日本語に対応したmb_str_shuffleはありません。

関連の記事

PHP 文字列の値を比較するサンプル(strcmp)
PHP 文字列の長さを取得するサンプル(mb_strlen/strlen)
PHP 英字の大文字と小文字を変換(strtolower/strtoupper)
PHP 文字列の一部を取得する(mb_substr/substr)
PHP 文字列の位置を取得する(mb_strpos/mb_strrpos)

△上に戻る