関数・クラス解説
strtr
version:PHP 4, PHP 5, PHP 7 (公式)文字の変換あるいは部分文字列の置換を行う
公式リファレンス
書式
strtr ( string $str , string $from , string $to ) : string
strtr ( string $str , array $replace_pairs ) : string
説明
引数を三つ渡した場合、この関数は str のコピーを返します。その際に、文字列中に from の各文字 (シングルバイト) があれば to の対応する文字に変換します。つまり、すべての $from[$n] が $to[$n] に置換されることになります。ここで $n は、どちらの引数でも共通に有効なオフセットです。
from と to の長さが異なる場合、長い方の余分な文字は無視されます。 返される文字列の長さは、もとの str と同じになります。
引数を二つだけ渡す場合は、二番目の引数を array('from' => 'to', ...) 形式の配列にしなければなりません。 返される値は文字列で、もとの文字列中にある配列のキーと同じ部分を対応する値で置換したものとなります。 一番長いキーから順に調べます。一度部分文字列の置換を行うと、 置換後の文字列がさらに置換の対象となることはありません。
この場合は、配列のキーと値は任意の長さにすることができますが、キーを空にすることだけはできません。 さらに、返される文字列の長さはもとの str とは異なる可能性があります。 しかし、この関数が最も効率的に働くのは、すべてのキーが同じ長さである場合です。
パラメータ
- str
- 変換する文字列。
- from
- to に変換される文字列。
- to
- from を置換する文字列。
- replace_pairs
- replace_pairs パラメータを to や from のかわりに使用することができます。この場合は array('from' => 'to', ...) 形式の配列となります。
返値
変換後の文字列を返します。 replace_pairs の中に空文字列 ("") のキーがある場合は FALSE を返します。 str がスカラー値でない場合は文字列への変換をせず、 警告を発して NULL を返します。
サンプル
例1 strtr() の例
// この形式の場合、strtr() はバイト単位での変換を行います。
// したがって、ここではシングルバイトエンコーディングを想定しています。
$addr = strtr($addr, "äåö", "aao");
次の例は、引数を二つだけ指定して strtr() をコールしたときの挙動を示すものです。置換の優先度 ("h" よりもっと長いキーに一致しているので、この置換は行われていないこと)、 そして一度置換した文字列はもう置換の対象にならないことを確認しましょう。
例2 2 つの引数を伴う strtr() の例
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
上の例の出力は以下となります。
hello all, I said hi
これらふたつのモードの挙動は大きく異なります。引数が三つの場合は strtr() はバイト単位で置換し、二つの場合はより長い部分文字列を置換します。
例3 strtr() の挙動の比較
echo strtr("baab", "ab", "01"),"\n";
$trans = array("ab" => "01");
echo strtr("baab", $trans);
上の例の出力は以下となります。
1001
ba01
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール