PHPの文字列関連のチートシート

KIMG0615

文字列に関する関数は、けったいなものが多い(かなり個人的な感想)ので、使いそうなものだけをピックアップしました。(PHP: String 関数 – Manual

使い所のわからない関数だけでなくエイリアスや非推奨の関数も除外しています。

chr

(PHP 4, PHP 5, PHP 7)

特定の文字を返す。

説明

asciiで指定された、1文字からなる文字列を返します。

この関数はord()の逆の動作をします。

パラメータ

ascii

拡張 ASCII コード。妥当な範囲 (0..255) 外の値を渡した場合は、255 とのビット AND を行います。

返り値

指定した文字を返します。

chunk_split

(PHP 4, PHP 5, PHP 7)

文字列をより小さな部分に分割する。

説明

文字列をより小さな部分に分割する際に使用され、 base64_encode() の出力を RFC 2045の規約に基づいた出力に変換するといった用途に適しています。 この関数は、chunklen 文字毎に文字列 end を挿入します。

パラメータ

body

分割したい文字列。

chunklen

各部分の長さ。

end

行末の区切り。

返り値

分割した文字列を返します。

crypt

(PHP 4, PHP 5, PHP 7)

文字列の一方向のハッシュ化を行う。

説明

crypt() 文字列のハッシュを返します。 Unix 標準の DES ベースのアルゴリズムか、 あるいはシステム上で使えるその他のアルゴリズムを使用します。

salt パラメータは必須ではありませんが、これを省略すると crypt() が作るハッシュが弱いものになってしまいます。 PHP 5.6 以降は、このパラメータを省略した場合に E_NOTICE が発生するようになりました。 十分に強いソルトを指定して、セキュリティを確保しましょう。

password_hash() は、強力なハッシュを使い、協力なソルトを生成して、それを複数回自動的に適用します。 password_hash() は crypt() のシンプルなラッパーであり、既存のパスワードハッシュと互換性があります。 password_hash() を使うことを推奨します。

複数のハッシュ方式をサポートしているオペレーティングシステムもあります。 実際、標準の DES ベースのアルゴリズムを MD5 ベースのものに置き換えることもあります。 ハッシュ方式は、salt 引数によって決まります。 PHP 5.3 より前のバージョンでは、PHP のインストール時に、 システムの crypt() 関数から使用できるアルゴリズムを判別します。 salt を省略した場合は、標準の 2 文字 (DES) の salt を自動生成します。 あるいは、MD5 crypt() が使えれば 12 文字 (MD5) の salt を自動生成します。 PHP の定数 CRYPT_SALT_LENGTH には、 ハッシュで使用できる salt の最大長が格納されています。

標準の DES ベースの場合、crypt() は出力の最初の 2 文字を salt として使用します。また、 str の最初の 8 文字しか使用しません。 つまり、最初の 8 文字が同じである長い文字列は、 同じ salt を使う限り同じ結果となります。

crypt() が複数のハッシュ方式をサポートしているシステムでは、 その方式が使用可能かどうかによって次の定数群が 0 か 1 に設定されます。

CRYPT_STD_DES

標準の DES ベースのハッシュで、 アルファベット “./0-9A-Za-z” からなる 2 文字の salt を使用するもの。 salt として無効な文字を使うと crypt() は失敗します。

CRYPT_EXT_DES

拡張した DES ベースのハッシュ。”salt” は 9 文字で、 アンダースコアの後に 4 バイトの反復回数と 4 バイトの salt が続きます。 これらが表示可能な文字にエンコードされます。一文字あたり 6 ビットで、 下位の文字から順に並びます。 0 から 63 までの値は “./0-9A-Za-z” とエンコードされます。 salt に無効な文字を使うと crypt() は失敗します。

CRYPT_MD5

$1$ ではじまる 12 文字の salt を使用する MD5 ハッシュ。

CRYPT_BLOWFISH

Blowfish ハッシュ。salt の形式は、 “$2a$” か “$2x$” あるいは “$2y$”、2 桁のコストパラメータ、”$”、そして文字 “./0-9A-Za-z” からなる 22 文字となります。 この範囲外の文字を salt に使うと、crypt() は長さゼロの文字列を返します。 2 桁のコストパラメータは反復回数の 2 を底とする対数で、 これは Blowfish ベースのハッシュアルゴリズムで使います。 この値は 04 から 31 までの範囲でなければならず、 それ以外の値の場合は crypt() は失敗します。 5.3.7 までのバージョンの PHP では、salt のプレフィックスとして “$2a$” だけしか使えませんでした。PHP 5.3.7 で新たなプレフィックスが導入され、 Blowfish の実装にあったセキュリティ上の弱点に対応しました。 セキュリティ修正の対応の詳細については » この文書 を参照ください。 簡単にまとめると、PHP 5.3.7 以降しか使わないのなら “$2a$” ではなく “$2y$” を使うべきだということです。

CRYPT_SHA256

SHA-256 ハッシュに $5$ で始まる 16 文字の salt を組み合わせたもの。salt 文字列が ‘rounds=<N>$’ で始まる場合は、数値 N がハッシュループの実行回数を表します。 これは Blowfish のコストパラメータのようなものです。 rounds のデフォルトは 5000 で、1000 から 999,999,999 までの値を指定できます。 この範囲外の N を指定すると、近い方の境界値に切り詰められます。

CRYPT_SHA512

SHA-512 ハッシュに $6$ で始まる 16 文字の salt を組み合わせたもの。salt 文字列が ‘rounds=<N>$’ で始まる場合は、数値 N がハッシュループの実行回数を表します。 これは Blowfish のコストパラメータのようなものです。 rounds のデフォルトは 5000 で、1000 から 999,999,999 までの値を指定できます。 この範囲外の N を指定すると、近い方の境界値に切り詰められます。

パラメータ

str

ハッシュしたい文字列。

salt

ハッシュのもととなる salt 文字列。省略した場合の挙動は アルゴリズムの実装によって決まるので、予期せぬ結果となることがあり得ます。

返り値

ハッシュした文字列を返します。 失敗した場合は、salt とは異なることが保証されている 13 文字未満の文字列を返します。

変更履歴

5.6.5

salt として “0″ が渡されたときに、 他の crypt の実装にあわせて “1″ を返すようになりました。 これより前のバージョンの PHP 5.6 では、間違った DES ハッシュを返していました。

5.6.0

salt を省略した場合に E_NOTICE が発生するようになりました。

5.5.21

salt として “0″ が渡されたときに、 他の crypt の実装にあわせて “1″ を返すようになりました。 これより前のバージョンの PHP では、間違った DES ハッシュを返していました。

5.3.7

Blowfish のモード $2x$ および $2y$ が追加され、高ビット攻撃に対応できるようになりました。

5.3.2

SHA-256 および SHA-512 による暗号化が追加されました。Ulrich Drepper の » 実装 を使っています。

5.3.2

Blowfish で無効な rounds を指定したときに、DES に切り替えるのではなく “failure” 文字列 (“0″ あるいは “1″) を返すようになりました。

5.3.0

PHP に MD5 crypt, Standard DES, Extended DES および Blowfish の実装が含まれるようになりました。システム側でこれらのアルゴリズムがサポートされていない場合に、 この実装を使用します。

echo

(PHP 4, PHP 5, PHP 7)

1 つ以上の文字列を出力する。

説明

すべてのパラメータを出力します。末尾に改行を付加することはありません。

echo は実際には関数ではありません (言語構造です)。このため、使用する際に括弧は必要ありません。 (いくつかの他の言語構造と異なり) echo は関数のように動作しません。そのため、 関数のコンテキスト中では常に使用することができません。 加えて、複数のパラメータを指定して echo をコールしたい場合、括弧の中にパラメータを記述してはいけません。

echo には、開始タグの直後に等号を付ける短縮構文もあります。 この短縮構文は、PHP 5.4.0 より前のバージョンでは設定オプションshort_open_tag が有効な場合しか使えません。

パラメータ

arg1

出力したいパラメータ。

返り値

値を返しません。

explode

(PHP 4, PHP 5, PHP 7)

文字列を文字列により分割する。

説明

文字列の配列を返します。この配列の各要素は、 string を文字列 delimiter で区切った部分文字列となります。

パラメータ

delimiter

区切り文字列。

string

入力文字列。

limit

limit に正の値が指定された場合、返される配列には 最大 limit の要素が含まれ、その最後の要素には string の残りの部分が全て含まれます。

もし limit パラメータが負の場合、 最後の -limit 個の要素を除く全ての構成要素が返されます。

limit パラメータがゼロの場合は、1 を指定したものとみなされます。

返り値

string の内容を delimiter で分割した文字列の配列を返します。

空の文字列 (“”) が delimiter として使用された場合、 explode() は FALSE を返します。delimiter に引数 string に含まれていない値が含まれている場合は、 limit が負の値なら空の配列、そうでなければ 引数 string を含む配列を返します。

変更履歴

5.1.0

limit に負の数を指定できるようになりました。

fprintf

(PHP 5, PHP 7)

フォーマットされた文字列をストリームに書き込む。

説明

format によって作成された文字列を handle で指定したストリームに書き込みます。

パラメータ

handle

fopen() を使用して作成したファイルシステムポインタリソース。

format

format については、 sprintf() のドキュメントで説明されています。

返り値

書き込まれた文字列の長さを返します。

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

HTML エンティティを適切な文字に変換する。

説明

html_entity_decode() は htmlentities() の反対で、string にあるすべての HTML エンティティを適切な文字に変換します。

厳密に言うと、この関数は次の二つの条件を満たすすべての (数値エンティティを含む) エンティティをデコードします。それ以外のエンティティは、何も変換しません。 1) 選択したドキュメントタイプで必然的に有効になるもの。つまり XML の場合には、DTD で定義されている名前付きエンティティはデコードしません。 2) 選択したエンコーディングに関連づけられている符号化文字集合に含まれる文字で、 選択したドキュメントタイプで許可されているもの。

パラメータ

string

入力文字列。

flags

以下のフラグのビットマスクによる組み合わせで、クォートの扱いやドキュメントの形式を指定します。 デフォルトは ENT_COMPAT | ENT_HTML401 です。

ENT_COMPAT

ダブルクォートを変換し、シングルクォートはそのままにします。

ENT_QUOTES

ダブルクォート、シングルクォートの両方を変換します。

ENT_NOQUOTES

ダブルクォート、シングルクォートの両方とも変換しません。

ENT_HTML401

コードを HTML 4.01 として処理します。

ENT_XML1

コードを XML 1 として処理します。

ENT_XHTML

コードを XHTML として処理します。

ENT_HTML5

コードを HTML 5 として処理します。

encoding

オプションの引数。文字を変換するときに使うエンコーディングを定義します。

省略した場の encoding のデフォルト値は、varies PHP のバージョンによって異なります。 PHP 5.6.0 以降では、デフォルト値として default_charset の値を使います。PHP 5.4 と PHP 5.5 のデフォルト値は、 UTF-8 で、それより前のバージョンの PHP のデフォルト値は ISO-8859-1 でした。

技術的にはこの引数を省略可能ですが、PHP 5.5 以前のバージョンを使っている場合や、 default_charset の指定が入力とは違う文字セットになっている場合は、 適切な値を指定しておくことを強く推奨します。

以下の文字セットをサポートします。

文字セットエイリアス説明
ISO-8859-1ISO8859-1西欧、Latin-1
ISO-8859-5ISO8859-5ほとんど使われないキリル文字セット (Latin/Cyrillic)。
ISO-8859-15ISO8859-15西欧、Latin-9 。Latin-1(ISO-8859-1) に欠けている ユーロ記号やフランス・フィンランドの文字を追加したもの。
UTF-8ASCII 互換のマルチバイト 8 ビット Unicode 。
cp866ibm866, 866DOS 固有のキリル文字セット。
cp1251Windows-1251, win-1251, 1251Windows 固有のキリル文字セット。
cp1252Windows-1252, 1252西欧のための Windows 固有の文字セット。
KOI8-Rkoi8-ru, koi8rロシア語。
BIG5950繁体字中国語。主に台湾で使用されます。
GB2312936簡体字中国語。国の標準文字セットです。
BIG5-HKSCSBig5 に香港の拡張を含めたもの。繁体字中国語。
Shift_JISSJIS, SJIS-win, cp932, 932日本語。
EUC-JPEUCJP, eucJP-win日本語。
MacRomanMac OS で使われる文字セット。
''空文字列を指定すると、 スクリプトのエンコーディング (Zend multibyte)、 default_charset、 そして現在のロケール (nl_langinfo() および setlocale() を参照ください) の順でエンコーディングを検出します。 この方法はおすすめしません。

返り値

デコードされた文字列を返します。

変更履歴

5.6.0

encoding パラメータのデフォルト値が、 default_charset の設定値に変わりました。

5.3.3

デフォルトのエンコーディングが ISO-8859-1 から UTF-8 に変わりました。

5.4.0

定数 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。

htmlentities

(PHP 4, PHP 5, PHP 7)

適用可能な文字を全て HTML エンティティに変換する。

説明

この関数はhtmlspecialchars()と同じですが、 HTML エンティティと等価な意味を有する文字をHTMLエンティティに変換します。

もしデコード (逆の処理) をしたい場合、 html_entity_decode() を使用することができます。

パラメータ

string

入力文字列。

flags

以下のフラグを組み合わせたビットマスクです。 クォートや無効な符号単位シーケンス、そして文書型の扱いを指定します。 デフォルトは ENT_COMPAT | ENT_HTML401 です。

ENT_COMPAT

ダブルクォートを変換し、シングルクォートはそのままにします。

ENT_QUOTES

ダブルクォート、シングルクォートの両方を変換します。

ENT_NOQUOTES

ダブルクォート、シングルクォートの両方とも変換しません。

ENT_HTML401

コードを HTML 4.01 として処理します。

ENT_XML1

コードを XML 1 として処理します。

ENT_XHTML

コードを XHTML として処理します。

ENT_HTML5

コードを HTML 5 として処理します。

encoding

オプションの引数。文字を変換するときに使うエンコーディングを定義します。

省略した場の encoding のデフォルト値は、varies PHP のバージョンによって異なります。 PHP 5.6.0 以降では、デフォルト値として default_charset の値を使います。PHP 5.4 と PHP 5.5 のデフォルト値は、 UTF-8 で、それより前のバージョンの PHP のデフォルト値は ISO-8859-1 でした。

技術的にはこの引数を省略可能ですが、PHP 5.5 以前のバージョンを使っている場合や、 default_charset の指定が入力とは違う文字セットになっている場合は、 適切な値を指定しておくことを強く推奨します。

以下の文字セットをサポートします。

文字セットエイリアス説明
ISO-8859-1ISO8859-1西欧、Latin-1
ISO-8859-5ISO8859-5ほとんど使われないキリル文字セット (Latin/Cyrillic)。
ISO-8859-15ISO8859-15西欧、Latin-9 。Latin-1(ISO-8859-1) に欠けている ユーロ記号やフランス・フィンランドの文字を追加したもの。
UTF-8ASCII 互換のマルチバイト 8 ビット Unicode 。
cp866ibm866, 866DOS 固有のキリル文字セット。
cp1251Windows-1251, win-1251, 1251Windows 固有のキリル文字セット。
cp1252Windows-1252, 1252西欧のための Windows 固有の文字セット。
KOI8-Rkoi8-ru, koi8rロシア語。
BIG5950繁体字中国語。主に台湾で使用されます。
GB2312936簡体字中国語。国の標準文字セットです。
BIG5-HKSCSBig5 に香港の拡張を含めたもの。繁体字中国語。
Shift_JISSJIS, SJIS-win, cp932, 932日本語。
EUC-JPEUCJP, eucJP-win日本語。
MacRomanMac OS で使われる文字セット。
''空文字列を指定すると、 スクリプトのエンコーディング (Zend multibyte)、 default_charset、 そして現在のロケール (nl_langinfo() および setlocale() を参照ください) の順でエンコーディングを検出します。 この方法はおすすめしません。

double_encode

double_encode をオフにすると、PHP は既存の html エンティティをエンコードしません。 デフォルトでは、既存のエンティティも含めてすべてを変換します。

返り値

エンコードした文字列を返します。

入力文字列の中に、指定した encoding で無効な符号単位シーケンスが含まれる場合は、 ENT_IGNORE あるいは ENT_SUBSTITUTE フラグが設定されていない限りは空文字列を返します。

変更履歴

5.6.0

encoding パラメータのデフォルト値が、 default_charset の設定値に変わりました。

5.4.0

encoding パラメータのデフォルトが UTF-8 に変わりました。

5.4.0

定数 ENT_SUBSTITUTE、ENT_DISALLOWED、 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。

5.3.0

定数 ENT_IGNORE が追加されました。

5.2.3

double_encode パラメータが追加されました。

htmlspecialchars_decode

(PHP 5 >= 5.1.0, PHP 7)

特殊な HTML エンティティを文字に戻す。

説明

この関数は htmlspecialchars() の反対です。 特殊な HTML エンティティを文字に戻します。

変換されるエンティティは次のものです。&amp;、 &quot; (ENT_NOQUOTES が設定されていない場合)、 &#039; (ENT_QUOTES が設定されている場合)、 &lt; および &gt;。

パラメータ

string

デコードする文字列。

flags

以下のフラグのビットマスクによる組み合わせで、クォートの扱いやドキュメントの形式を指定します。 デフォルトは ENT_COMPAT | ENT_HTML401 です。

ENT_COMPAT

ダブルクォートを変換し、シングルクォートはそのままにします。

ENT_QUOTES

ダブルクォート、シングルクォートの両方を変換します。

ENT_NOQUOTES

ダブルクォート、シングルクォートの両方とも変換しません。

ENT_HTML401

コードを HTML 4.01 として処理します。

ENT_XML1

コードを XML 1 として処理します。

ENT_XHTML

コードを XHTML として処理します。

ENT_HTML5

コードを HTML 5 として処理します。

返り値

デコードされた文字列を返します。

変更履歴

5.4.0

定数 ENT_HTML401、ENT_XML1、 ENT_XHTML および ENT_HTML5 が追加されました。

htmlspecialchars

(PHP 4, PHP 5, PHP 7)

特殊文字を HTML エンティティに変換する。

説明

文字の中には HTML において特殊な意味を持つものがあり、 それらの本来の値を表示したければ HTML の表現形式に変換してやらなければなりません。 この関数は、これらの変換を行った結果の文字列を返します。 入力文字列の中で名前付きエンティティに関連づけられたものを すべて変換する必要がある場合には、代わりに htmlentities() を使用してください。

この関数への入力文字列と最終的なドキュメントとの間で文字セットが一致している場合は、 この関数を使えば HTML ドキュメントに組み込むための準備として十分です。 しかし、この関数への入力の中に、最終的なドキュメントの文字セットでは符号化できない文字がある場合もあります。 そんな文字も (数値エンティティや名前つきエンティティなどで) 残したい場合は、 この関数と htmlentities() (これは、名前付きエンティティに対応する文字しか置換しません) を使うだけでは不十分です。そんな場合は mb_encode_numericentity() を使う必要があります。

& (アンパサンド)

&amp;

” (ダブルクォート)

ENT_NOQUOTES が指定されていない場合、&quot;

‘ (シングルクォート)

&#039; (ENT_HTML401 の場合) あるいは &apos; ( ENT_XML1、ENT_XHTML、 ENT_HTML5 の場合)。ただし ENT_QUOTES が指定されている場合に限る

< (小なり)

&lt;

> (大なり)

&gt;

パラメータ

string

変換される文字列。

flags

以下のフラグを組み合わせたビットマスクです。 クォートや無効な符号単位シーケンス、そして文書型の扱いを指定します。 デフォルトは ENT_COMPAT | ENT_HTML401 です。

返り値

implode

(PHP 4, PHP 5, PHP 7)

配列要素を文字列により連結する。

説明

配列の要素を glue 文字列で連結します。

パラメータ

glue

デフォルトは空文字列です。

pieces

連結したい文字列の配列。

返り値

すべての配列要素の順序を変えずに、各要素間に glue 文字列をはさんで 1 つの文字列にして返します。

ltrim

(PHP 4, PHP 5, PHP 7)

文字列の最初から空白 (もしくはその他の文字) を取り除く。

説明

文字列の最初から空白 (もしくはその他の文字) を取り除きます。

パラメータ

str

入力文字列。

character_mask

character_maskパラメータにより、削除する 文字を指定することも可能です。削除したい全ての文字をリストに してください。..を文字の範囲を指定する際に 使用可能です。

返り値

この関数は文字列の最初から空白文字を取り除き、 取り除かれた文字列を返します。2番目のパラメータを指定しない場合、 ltrim()は以下の文字を削除します。

  • ” ” (ASCII 32 (0x20)), 通常の空白。
  • “\t” (ASCII 9 (0x09)), タブ。
  • “\n” (ASCII 10 (0x0A)), 改行。
  • “\r” (ASCII 13 (0x0D)), 復帰。
  • “\0” (ASCII 0 (0x00)), NUL バイト。
  • “\x0B” (ASCII 11 (0x0B)), 垂直タブ。

md5_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

指定したファイルのMD5ハッシュ値を計算する。

説明

RSA Data Security, Inc. MD5 メッセージダイジェストアルゴリズムを用いて filenameパラメータで指定したファイルの MD5ハッシュを計算し、そのハッシュを返します。 ハッシュは、32 文字の 16 進数です。

パラメータ

filename

ファイル名

raw_output

TRUE の場合、長さ 16 の生のバイナリフォーマットで ダイジェストを返します。

返り値

成功時は文字列、そうでなければ FALSE

変更履歴

5.1.0

ストリーム API を使用した関数に変更されました。 これは md5_file(‘http://example.com/..’) のようなラッパーで利用可能であることを意味します。

md5

(PHP 4, PHP 5, PHP 7)

文字列のmd5ハッシュ値を計算する。

説明

RSA Data Security, Inc. の MD5メッセージダイジェストアルゴリズム を用いて str の MD5 ハッシュ値を計算し、 そのハッシュを返します。

パラメータ

str

文字列。

raw_output

オプションのraw_output に TRUE が指定された場合、 md5 ダイジェストが 16 バイト長のバイナリ形式で返されます。

返り値

32 文字の 16 進数からなるハッシュを返します。

nl2br

(PHP 4, PHP 5, PHP 7)

改行文字の前に HTML の改行タグを挿入する。

説明

string に含まれるすべての改行文字 (\r\n、 \n\r、\n および \r) の前に <br /> あるいは <br> を挿入して返します。

パラメータ

string

入力文字列。

is_xhtml

XHTML 準拠の改行を使うか否か。

返り値

変更後の文字列を返します。

number_format

(PHP 4, PHP 5, PHP 7)

数字を千位毎にグループ化してフォーマットする。

説明

この関数は 1 つか 2 つもしくは 4 つのパラメータを受け取ります (3 つはありません) :

パラメータが 1 つだけ渡された場合、 number は千位毎にカンマ (“,”) が追加され、 小数なしでフォーマットされます。

パラメータが 2 つ渡された場合、number は decimals 桁の小数の前にドット (“.”) 、 千位毎にカンマ (“,”) が追加されてフォーマットされます。

パラメータが 4 つ全て渡された場合、number はドット (“.”) の代わりに dec_point が decimals 桁の小数の前に、千位毎にカンマ (“,”) の代わりに thousands_sep が追加されてフォーマットされます。

パラメータ

number

フォーマットする数値。

decimals

小数点以下の桁数。

dec_point

小数点を表す区切り文字。

thousands_sep

千位毎の区切り文字。

返り値

number をフォーマットした結果を返します。

変更履歴

7.2.0

-0を返すことができないように変更されました。以前は、numberが-0.01になるような場合には-0が返される可能性がありました。

5.4.0

この関数は、 dec_point や thousands_sep に複数バイトを指定できるようになりました。 それまでは、複数のバイトを指定しても先頭の 1 バイトしか使われませんでした。

ord

(PHP 4, PHP 5, PHP 7)

文字の ASCII 値を返す。

説明

string の先頭文字の ASCII 値を返します。

この関数は chr() と逆の動作をします。

パラメータ

string

対象となる文字。

返り値

ASCII 値を返します。

parse_str

(PHP 4, PHP 5, PHP 7)

文字列を処理し、変数に代入する。

説明

URL 経由で渡されるクエリ文字列と同様に encoded_string を処理し、現在のスコープに変数をセットします。

パラメータ

encoded_string

入力文字列。

result

2 番目の引数 result が指定された場合、 変数は、代わりに配列の要素としてこの変数に保存されます。

返り値

値を返しません。

変更履歴

7.2.0

2番目のパラメータなしでparse_str()を使用すると、E_DEPRECATEDを通知するようになりました。

print

(PHP 4, PHP 5, PHP 7)

文字列を出力する。

説明

arg を出力します。

printは実際には関数ではありません (言語構造です)。このため、引数を括弧で括る必要はありません。

echo との主な違いは、 print が単一の引数のみ受け付け、常に 1 を返すことです。

パラメータ

arg

入力データ。

返り値

常に 1 を返します。

printf

(PHP 4, PHP 5, PHP 7)

フォーマット済みの文字列を出力する。

説明

format にしたがって、出力を生成します。

パラメータ

format

format についての説明は sprintf() を参照ください。

返り値

出力した文字列の長さを返します。

quotemeta

(PHP 4, PHP 5, PHP 7)

メタ文字をクォートする。

説明

文字列 str について、

の前にバックスラッシュ文字 () でクォートして返します。

パラメータ

str

入力文字列。

返り値

メタ文字をクォートした文字列を返します。 空文字を str に渡した場合は FALSE を返します。

rtrim

(PHP 4, PHP 5, PHP 7)

文字列の最後から空白 (もしくはその他の文字) を取り除く。

説明

この関数は文字列 str の最後から空白文字 (あるいはその他の文字) を取り除き、 取り除かれた文字列を返します。

2 番目のパラメータを指定しない場合、 rtrim() は以下の文字を削除します。

  • ” ” (ASCII 32 (0x20)), 通常の空白。
  • “\t” (ASCII 9 (0x09)), タブ。
  • “\n” (ASCII 10 (0x0A)), 改行。
  • “\r” (ASCII 13 (0x0D)), 復帰。
  • “\0” (ASCII 0 (0x00)), NULL バイト。
  • “\x0B” (ASCII 11 (0x0B)), 垂直タブ。

パラメータ

str

入力文字列。

character_mask

character_mask パラメータにより、 削除する文字を指定することも可能です。 削除したい全ての文字をリストにしてください。.. を文字の範囲を指定する際に使用可能です。

返り値

変更後の文字列を返します。

sha1_file

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ファイルの sha1 ハッシュを計算する。

説明

US Secure Hash Algorithm 1 を使用して filename の sha1 ハッシュを計算し、そのハッシュを 返します。ハッシュは 40 文字の 16 進数となります。

パラメータ

filename

ハッシュしたいファイルのファイル名。

raw_output

TRUE を指定すると、長さ 20 のバイナリフォーマットで ダイジェストを返します。

返り値

成功した場合に文字列、それ以外の場合に FALSE を返します。

変更履歴

5.1.0

ストリーム API を使用するように変更しました。つまり、 sha1_file(‘http://example.com/..’) のように ラッパーとともに使用できるということです。

sha1

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

文字列の sha1 ハッシュを計算する。

説明

US Secure Hash Algorithm 1 を使用して str の sha1 ハッシュを計算します。

パラメータ

str

入力文字列。

raw_output

オプションの raw_output に TRUE が指定された場合、sha1 ダイジェストは 20 バイト長のバイナリ形式で返されます。 それ以外の場合は、返り値は 40 文字の 16 進数となります。

返り値

sha1 ハッシュを文字列で返します。

sprintf

(PHP 4, PHP 5, PHP 7)

フォーマットされた文字列を返す。

説明

フォーマット文字列 format に基づき生成された文字列を返します。

パラメータ

format

フォーマット文字列は 0 個以上のディレクティブ(指示子) により構成されます。ディレクティブには、そのまま結果にコピーされる (% を除く) 通常の文字と変換指定子 (conversion specifications) があり、 取り出される際はどちらもそれ自身がパラメータとなります。このことは sprintf() の場合だけでなく printf() の場合も同様です。

各変換指定子は、パーセント記号 (%) の後に これらの要素が一つ以上続いたものになります。

  1. オプションの符号指定子。これは、 数値で符号 (- あるいは +) を使用するよう指定します。 デフォルトでは、数値が負の場合の – 符号のみが使用されます。 この指定子により、正の数にも強制的に + 符号をつけることができます。
  2. オプションのパディング指定子。これは、 文字列が正しい長さになるまでどんな文字で埋めるかということを 指定します。これは空白かまたは 0 (文字 ‘0’) のいずれかです。デフォルトでは空白で埋められます。 これ以外のパディング文字を指定するには、その文字の前に 単一引用符 () を置きます。 後述の例を参照ください。
  3. オプションのアラインメント指定子。これは、 結果を左寄せまたは右寄せにしたい場合に指定します。 デフォルトは右寄せです。ここで  文字を指定すると左寄せとなります。
  4. オプションの数字。これは表示幅指定子です。 結果を(最低)何桁にするかを指定します。
  5. オプションの精度指定子 (ピリオド (.) に続けてオプションで桁数指定文字列を書いたもの)。 これは、浮動小数点数に対して数字を何桁まで表示するかを指定します。 文字列に対して使用した場合は、これは切り捨て位置として働きます。 この文字数を超える文字を切り捨てられます。 さらに、数値の桁埋めに使う文字を指定することもできます。桁埋め文字は、ピリオドと数値の間に指定します。
  6. 型指定子。引数を何の型として扱うかを指定します。 指定できる型を以下に示します。

  • % – パーセント文字。引数は不要です。
  • b – 引数を整数として扱い、 2 進数として表現します。
  • c – 引数を整数として扱い、その ASCII 値の文字として表現します。
  • d – 引数を整数として扱い、 10 進数として表現します。
  • e – 引数を科学記法として扱います (例 1.2e+2)。 精度の指定子は、PHP 5.2.1 以降では小数点以下の桁数を表します。 それより前のバージョンでは、有効数字の桁数 (ひとつ小さい値) を意味していました。
  • E – %e と同じですが、 大文字を使います (例 1.2E+2)。
  • f – 引数を double として扱い、 浮動小数点数として表現します。
  • F – 引数を float として扱い、 浮動小数点数として表現します (ロケールに依存しません)。 PHP 5.0.3 以降で使用可能です。
  • g – %e および %f の短縮形。
  • G – %E および %f の短縮形。
  • o – 引数を整数として扱い、 8 進数として表現します。
  • s – 引数を文字列として扱い、表現します。
  • u – 引数を整数として扱い、符号無しの 10 進数として表現します。
  • x – 引数を整数として扱い、16 進数として (小文字で)表現します。
  • X – 引数を整数として扱い、16 進数として (大文字で)表現します。

変数を適切な型に強制することができます。

指定子
strings
integerd, u, c, o, x, X, b
doubleg, G, e, E, f, F

返り値

フォーマット文字列 format に基づき生成された文字列を返します。 失敗した場合に FALSE を返します。

sscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

フォーマット文字列に基づき入力を処理する。

説明

この関数はprintf() の入力版です。sscanf() は、文字列 str を読み込み、これを指定したフォーマット format に基づき解釈します。 このフォーマットは、sprintf()のマニュアルに記述されています。

フォーマット文字列の中のあらゆる空白文字は、入力文字列の中の 空白文字列にマッチします。つまり、フォーマット文字列の中にタブ文字 \t が含まれていても、それは入力中の半角スペースにマッチしてしまうということです。

パラメータ

str

入力文字列。

format

str を解釈するフォーマット。 sprintf() のドキュメントにある説明と比べて、以下の違いがあります。

  • ロケールに対応していません。
  • F、g、G および b はサポートしていません。
  • D は十進数値を表します。
  • i は基数検出つきの整数値を表します。
  • n は処理する文字数を表します。
  • s は空白文字で読み取りを停止します。

オプションで指定する参照渡しの変数に、 パースされた値が格納されます。

返り値

この関数のパラメータが二つだけの場合、処理された値は配列として返されます。 それ以外の場合は、もしオプションのパラメータが渡されればこの関数は 割り当てられた値の数を返します。オプションのパラメータは 参照渡しにする必要があります。

format で期待する部分文字列のほうが 実際に str に存在するものより多い場合は -1 を返します。

str_getcsv

(PHP 5 >= 5.3.0, PHP 7)

CSV 文字列をパースして配列に格納する。

説明

CSV 形式の文字列入力のフィールドをパースして、 読み込んだフィールドの内容を配列で返します。

パラメータ

input

パースする文字列。

delimiter

フィールド区切り文字 (1 文字のみ)。

enclosure

フィールド囲み文字 (1 文字のみ)。

escape

エスケープ文字 (1 文字のみ)。デフォルトはバックスラッシュ ()。

返り値

読み込んだフィールドの内容を配列で返します。

str_ireplace

(PHP 5, PHP 7)

大文字小文字を区別しない str_replace。

説明

この関数は、subject の中に現れるすべての search(大文字小文字を区別しない)を replace に置き換えた文字列あるいは配列を返します。 一般に、凝った置換ルールが必要ないのであれば、 preg_replace() で i 修正子を使用するかわりにこの関数を使用すべきです。

パラメータ

search および replace が配列の場合は、 str_ireplace() はそれぞれの配列から取り出した 値を使用して subject の置換を行います。 replace の要素数が search より少ない場合は、残りの要素は 空の文字列に置き換えられます。もし search が配列で replace が文字列だった場合は すべての search が同じ文字列に置き換えられます。 しかし、逆は意味がありません。

search あるいは replace が配列の場合は、配列の最初の要素から順に処理されます。

search

探したい値。needle (針) と呼ばれることもあります。 配列を使えば、複数の値を指定することもできます。

replace

見つかった search を置き換える値。 配列を使えば、複数の値を指定することもできます。

subject

検索・置換の対象となる文字列あるいは配列。 haystack (干し草の山) と呼ばれることもあります。

subject が配列の場合は、そのすべての要素に 対して検索と置換が行われ、返される結果も配列となります。

count

指定した場合は、マッチして置換が行われた箇所の個数がここに格納されます。

返り値

置換した文字列あるいは配列を返します。

str_pad

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

文字列を固定長の他の文字列で埋める。

説明

この関数は文字列 input の左、右または両側を指定した長さで埋めます。オプションの引数 pad_string が指定されていない場合は、 input は空白で埋められ、それ以外の場合は、 pad_string からの文字で制限まで埋められます。

パラメータ

input

入力文字列。

pad_length

pad_length の値が負、 または入力文字列の長さ以下である場合、埋める操作は行われません。 input をそのまま返します。

pad_string

必要とされる埋める文字数が pad_string の長さで均等に分割できない場合、pad_string は切り捨てられます。

pad_type

オプションの引数 pad_type には、 STR_PAD_RIGHT, STR_PAD_LEFT, STR_PAD_BOTH を指定可能です。 pad_typeが指定されない場合、 STR_PAD_RIGHT を仮定します。

返り値

埋めた後の文字列を返します。

str_repeat

(PHP 4, PHP 5, PHP 7)

文字列を反復する。

説明

input を multiplier 回を繰り返した文字列を返します。

パラメータ

input

繰り返す文字列。

multiplier

input を繰り返す回数。

multiplier は 0 以上でなければなりません。 multiplier が 0 に設定された場合、この関数は空文字を返します。

返り値

繰り返した文字列を返します。

str_replace

(PHP 4, PHP 5, PHP 7)

検索文字列に一致したすべての文字列を置換する。

説明

この関数は、subject の中の search を全て replace に置換します。

(正規表現のような) 技巧的な置換ルールを必要としない場合、 preg_replace() の代わりにこの関数を常用するべきです。

パラメータ

search と replace が配列の場合、str_replace() は各配列から値をひとつ取り出し、 subject 上で検索と置換を行うために使用します。 replace の値が search よりも少ない場合、 置換される値の残りの部分には空の文字列が使用されます。 search が配列で replace が文字列の場合、この置換文字列が search の各値について使用されます。しかし、 逆は意味がありません。

search あるいは replace が配列の場合は、配列の最初の要素から順に処理されます。

search

探したい値。needle (針) と呼ばれることもあります。 配列を使えば、複数の値を指定することもできます。

replace

見つかった search を置き換える値。 配列を使えば、複数の値を指定することもできます。

subject

検索・置換の対象となる文字列あるいは配列。 haystack (干し草の山) と呼ばれることもあります。

subject が配列の場合、 subject の各エントリについて検索と置換が行われ、 返り値は同様に配列となります。

count

指定した場合は、マッチして置換が行われた箇所の個数がここに格納されます。

返り値

この関数は、置換後の文字列あるいは配列を返します。

str_shuffle

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

文字列をランダムにシャッフルする。

説明

str_shuffle() は文字列をシャッフルします。 考えられるすべての順列のうちのひとつを作成します。

パラメータ

str

入力文字列。

返り値

シャッフルされた文字列を返します。

変更履歴

7.1.0

libc rand関数の代わりにMersenne Twister乱数ジェネレータを使用するように、内部ランダム化アルゴリズムが変更されました。

str_split

(PHP 5, PHP 7)

文字列を配列に変換する。

説明

文字列を配列に変換します。

パラメータ

string

入力文字列。

split_length

分割した部分の最大長。

返り値

オプションのパラメータ split_length が指定されている場合、 返される配列の各要素は、split_length の長さとなります。それ以外の場合、1 文字ずつ分割された配列となります。

split_length が 1 より小さい場合に FALSE を返します。split_length が string の長さより大きい場合、文字列全体が 最初の(そして唯一の)要素となる配列を返します。

strip_tags

(PHP 4, PHP 5, PHP 7)

文字列から HTML および PHP タグを取り除く。

説明

この関数は、指定した文字列 (str) から全ての NUL バイトと HTML および PHP タグを取り除きます。 この関数は、fgetss() 関数と同じタグ除去アルゴリズムを使用します。

パラメータ

str

入力文字列。

allowable_tags

オプションの2番目の引数により、取り除かないタグを指定できます。

返り値

タグを除去した文字列を返します。

変更履歴

5.3.4

strip_tags() は、 allowable_tags 内の自己終了型 XHTML タグを無視するようになりました。

5.0.0

strip_tags() がバイナリセーフとなりました。

stripcslashes

(PHP 4, PHP 5, PHP 7)

addcslashes でクォートされた文字列をアンクォートする。

説明

バックスラッシュを取り除いた文字列を返します。C言語と同様に \n, \r …, 8進表現, 16進表現を認識します。

パラメータ

str

元に戻したい文字列。

返り値

元に戻した文字列を返します。

stripos

(PHP 5, PHP 7)

大文字小文字を区別せずに文字列が最初に現れる位置を探す。

説明

文字列 haystack の中で needle が最初に現れる位置を探します。

strpos() と異なり、stripos() は大文字小文字を区別しません。

パラメータ

haystack

検索を行う文字列。

needle

needle は、 ひとつまたは複数の文字であることに注意しましょう。

needle が文字列でない場合は、 それを整数に変換し、その番号に対応する文字として扱います。

offset

指定すると、文字列内での検索開始位置がその位置になります。 負の数を指定すると、文字列の末尾からこの数だけ戻った場所から検索を開始します。

返り値

needle が見つかった位置を、 haystack 文字列の先頭 (offset の値とは無関係) からの相対位置で返します。 文字列の開始位置は 0 であり、1 ではないことに注意しましょう。

needle が見つからない場合は FALSE を返します。

変更履歴

7.1.0

負の offset をサポートするようになりました。

stripslashes

(PHP 4, PHP 5, PHP 7)

クォートされた文字列のクォート部分を取り除く。

説明

クォートされた文字列を元に戻します。

stripslashes() の使用例は、PHP ディレクティブ magic_quotes_gpc が on (PHP 5.4 より前のバージョンでのデフォルト値) かつ、 データをエスケープして (データベースのような) ある場所に挿入していない場合です。 例えば、単純に HTML フォームからのデータを直接出力するような場合です。

パラメータ

str

入力文字列。

返り値

バックスラッシュが取り除かれた文字列を返します(\’ が ‘ になるなど)。 2 つ並んだバックスラッシュ (\) は 1 つのバックスラッシュ () になります。

stristr

(PHP 4, PHP 5, PHP 7)

大文字小文字を区別しない strstr()。

説明

haystack において needle が最初に見つかった位置を含めてそこから最後までを返します。

パラメータ

haystack

検索を行う文字列。

needle

needle が文字列でない場合は、 それを整数に変換し、その番号に対応する文字として扱います。

before_needle

TRUE にすると、stristr() の返り値は、haystack の中で最初に needle があらわれる箇所より前の部分となります (needle は含めません)。

needle および haystack は大文字小文字を区別せずに評価されます。

返り値

マッチした部分文字列を返します。needle が見つからない場合は FALSE を返します。

変更履歴

5.3.0

オプションの before_needle パラメータが追加されました。

4.3.0

stristr() がバイナリセーフとなりました。

strlen

(PHP 4, PHP 5, PHP 7)

文字列の長さを得る。

説明

与えられた string の長さを返します。

パラメータ

string

長さを調べる文字列。

返り値

成功した場合に string の長さ、 string が空の文字列だった場合に 0 を返します。

変更履歴

5.3.0

これより前のバージョンでは、配列を「Array」という文字列とみなして処理していました。 つまり文字列の長さは 5 になります。そして E_NOTICE レベルのエラーが発生します。

strpos

(PHP 4, PHP 5, PHP 7)

文字列内の部分文字列が最初に現れる場所を見つける。

説明

文字列 haystack の中で、 needle が最初に現れる位置を探します。

パラメータ

haystack

検索を行う文字列。

needle

needle が文字列でない場合は、 それを整数に変換し、その番号に対応する文字として扱います。

offset

指定すると、文字列内での検索開始位置がその位置になります。 負の数を指定すると、文字列の末尾からこの数だけ戻った場所から検索を開始します。

返り値

needle が見つかった位置を、 haystack 文字列の先頭 (offset の値とは無関係) からの相対位置で返します。 文字列の開始位置は 0 であり、1 ではないことに注意しましょう。

needle が見つからない場合は FALSE を返します。

変更履歴

7.1.0

負の offset をサポートするようになりました。

strrchr

(PHP 4, PHP 5, PHP 7)

文字列中に文字が最後に現れる場所を取得する。

説明

この関数は、文字列 haystack の中で needle が最後に現れた位置から、 haystack の終わりまでを返します。

パラメータ

haystack

検索を行う文字列。

needle

needle がひとつ以上の文字を含んでいる場合は、 最初のもののみが使われます。この動作は、 strstr() とは異なります。

needle が文字列でない場合は、 それを整数に変換し、その番号に対応する文字として扱います。

返り値

この関数は、部分文字列を返します。 needle が見つからない場合は FALSE を返します。

変更履歴

4.3.0

この関数はバイナリセーフとなりました。

strrev

(PHP 4, PHP 5, PHP 7)

文字列を逆順にする。

説明

string を逆順にして返します。

パラメータ

string

逆順にしたい文字列。

返り値

逆順にした文字列を返します。

strripos

(PHP 5, PHP 7)

文字列中で、特定の(大文字小文字を区別しない)文字列が最後に現れた位置を探す。

説明

文字列 haystack の中で、 needle が最後に現れる位置を探します。

strrpos() と異なり、strripos() は大文字小文字を区別しません。

パラメータ

haystack

検索を行う文字列。

needle

needle が文字列でない場合は、 それを整数に変換し、その番号に対応する文字として扱います。

offset

指定すると、文字列の開始位置からこの文字数だけ進んだところで検索を中止します。 負の値を指定すると、文字列の最後からこの文字数だけ戻ったところから逆向きに検索を開始します。

返り値

needle が見つかった位置を、 haystack 文字列の先頭 (offset の値とは無関係) からの相対位置で返します。 文字列の開始位置は 0 であり、1 ではないことに注意しましょう。

needle が見つからない場合は FALSE を返します。

strrpos

(PHP 4, PHP 5, PHP 7)

文字列中に、ある部分文字列が最後に現れる場所を探す。

説明

文字列 haystack の中で、 needle が最後に現れる位置を探します。

パラメータ

haystack

検索を行う文字列。

needle

needle が文字列でない場合は、 それを整数に変換し、その番号に対応する文字として扱います。

offset

指定すると、文字列の開始位置からこの文字数だけ進んだところで検索を中止します。 負の値を指定すると、文字列の最後からこの文字数だけ戻ったところから逆向きに検索を開始します。

返り値

needle が見つかった位置を、 haystack 文字列の先頭 (offset の値とは無関係) からの相対位置で返します。 文字列の開始位置は 0 であり、1 ではないことに注意しましょう。

needle が見つからない場合は FALSE を返します。

変更履歴

5.0.0

needle は 1 文字以上の文字列を指定可能です。

strspn

(PHP 4, PHP 5, PHP 7)

指定したマスク内に含まれる文字からなる文字列の最初のセグメントの長さを探す。

説明

subject の中で、 mask 内の文字だけを含む最初の部分の長さを返します。

start と length を省略した場合は、subject 全体を調べます。 指定した場合は、strspn(substr($subject, $start, $length), $mask) (詳細は substr を参照ください) をコールするのと同じ働きをします。

パラメータ

subject

調べたい文字列。

mask

許可する文字の一覧。

start

subject の中で調べ始める位置。

start に非負の値を指定すると、 strspn() は subject の start 番目の位置から調査を始めます。 たとえば、文字列 ‘abcdef’ において 0 番目の位置にある文字は ‘a’ で 2 番目の位置にある文字は ‘c’ のようになります。

start に負の値を指定すると、 strspn() は subject の最後から start 番目の位置から調査を始めます。

length

subject 内で調べる部分の長さ。

length に非負の値を指定すると、 subject の開始位置から length 文字ぶんの範囲を調査します。

length に負の値を指定すると、 subject の調査範囲は 開始位置から始まって subject の最後から length だけさかのぼったところまでとなります。

返り値

subject の中で、全て mask の中の文字からなる最初のセグメントの長さを返します。

strstr

(PHP 4, PHP 5, PHP 7)

文字列が最初に現れる位置を見つける。

説明

haystack の中で needle が最初に現れる場所を含めてそこから文字列の終わりまでを返します。

パラメータ

haystack

入力文字列。

needle

needle が文字列でない場合は、 それを整数に変換し、その番号に対応する文字として扱います。

before_needle

TRUE にすると、strstr() の返り値は、haystack の中で最初に needle があらわれる箇所より前の部分となります (needle は含めません)。

返り値

部分文字列を返します。 needle が見つからない場合は FALSE を返します。

変更履歴

5.3.0

オプションの before_needle パラメータが追加されました。

4.3.0

strstr() がバイナリセーフとなりました。

strtok

(PHP 4, PHP 5, PHP 7)

文字列をトークンに分割する。

説明

文字列 (str) を 何らかの文字 token によって区切られている小さな文字列 (トークン) に分割します。 “This is an example string” のような文字列がある場合、 空白文字をトークンとするとこの文字列を個々の単語に分割することができます。

最初のコールの時のみ string 引数を使用することに注意してください。 strtok は、文字列のどこにいるのかの情報を保持しているため、 2回目以降のコールではトークンのみを必要とします。 最初からやりなおす場合や新しい文字列をトークンに分割する場合、 初期化するために再度string引数を指定してstrtokをコールします。 文字列は、引数の文字のどれかが見つかったはトークンに分割されます。

パラメータ

str

より小さい文字列 (トークン) に分割する文字列。

token

str を分割する際に使用する区切り文字。

返り値

文字列トークンを返します。

strtolower

(PHP 4, PHP 5, PHP 7)

文字列を小文字にする。

説明

string のアルファベット部分をすべて小文字にして返します。

「アルファベット部分」は現在のロケールにより決定されます。 つまり、たとえばデフォルトの「C」ロケールである場合は、 A ウムラウト (Ä) のような文字は変換されません。

パラメータ

string

入力文字列。

返り値

小文字に変換した文字列を返します。

strtoupper

(PHP 4, PHP 5, PHP 7)

文字列を大文字にする。

説明

string のアルファベット部分をすべて大文字にして返します。

「アルファベット部分」は現在のロケールにより決定されます。 つまり、たとえばデフォルトの「C」ロケールである場合は、 a ウムラウト (ä) のような文字は変換されません。

パラメータ

string

入力文字列。

返り値

大文字にした文字列を返します。

strtr

(PHP 4, PHP 5, PHP 7)

文字の変換あるいは部分文字列の置換を行う。

説明

引数を三つ渡した場合、この関数は 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 を返します。

substr_compare

(PHP 5, PHP 7)

指定した位置から指定した長さの 2 つの文字列について、バイナリ対応で比較する。

説明

main_str の offset 文字目以降の最大 length 文字を、str と比較します。

パラメータ

main_str

比較したい最初の文字列。

str

比較したい二番目の文字列。

offset

比較を開始する位置。 負の値を指定した場合は、文字列の最後から数えます。

length

比較する長さ。デフォルト値は、 main_str の長さから offset を引いたものと str の長さのうち、長いほうです。

case_insensitivity

TRUE の場合、 大文字小文字を区別せずに比較します。

返り値

main_str の offset 以降が str より小さい場合に負の数、 str より大きい場合に正の数、 等しい場合に 0 を返します。offset が main_str の長さ以上であるか、あるいは length が設定されていて 1 未満である場合 (PHP 5.5.11 より前のバージョン)、substr_compare() は警告を表示して FALSE を返します。

変更履歴

5.5.11

length を 0 にもできるようになりました。

5.1.0

負の offset を使用できるようになりました。

substr_count

(PHP 4, PHP 5, PHP 7)

副文字列の出現回数を数える。

説明

文字列 haystack の中での副文字列 needle の出現回数を返します。 needle は英大小文字を区別することに注意してください。

パラメータ

haystack

検索対象の文字列

needle

検索する副文字列

offset

開始位置のオフセット。 負の数を指定すると、文字列の末尾から数えます。

length

指定したオフセット以降に副文字列で検索する最大長。 オフセットと長さの総和が haystack の長さよりも長い場合、警告が発生します。 負の数を指定すると、haystack の末尾から数えます。

返り値

この関数は 整数 を返します。

変更履歴

7.1.0

負の offset と length をサポートするようになりました。

5.1.0

offset と length パラメータが追加されました。

substr_replace

(PHP 4, PHP 5, PHP 7)

文字列の一部を置換する。

説明

文字列 stringの start および (オプションの) length パラメータで区切られた部分を replacement で指定した文字列に置換します。

パラメータ

string

入力文字列。

文字列の配列を指定することもでき、各文字列について順に置換を行います。 この場合、他のパラメータ replacement、start および length がスカラ値なら それを各入力文字列に順次適用し、配列なら各入力文字列に対応する要素の値を適用します。

replacement

置換する文字列。

start

start が負ではない場合、置換は string で start 番目の文字から始まります。

start が負の場合、置換は string の終端から start 番目の文字から始まります。

length

正の値を指定した場合、 string の置換される部分の長さを表します。 負の場合、置換を停止する位置が string の終端から何文字目であるかを表します。このパラメータが省略された場合、 デフォルト値は strlen(string)、すなわち、 string の終端まで置換することになります。 当然、もし length がゼロだったら、 この関数は string の最初から start の位置に replacement を挿入するということになります。

返り値

結果の文字列を返します。もし、string が配列の場合、配列が返されます。

substr

(PHP 4, PHP 5, PHP 7)

文字列の一部分を返す。

説明

文字列 string の、start で指定された位置から length バイト分の文字列を返します。

パラメータ

string

入力文字列。最低 1 文字以上を指定しなければなりません。

start

start が正の場合、返される文字列は、 string の 0 から数えて start番目から始まる文字列となります。 例えば、文字列’abcdef’において位置 0にある文字は、’a’であり、 位置2には’c’があります。

start が負の場合、返される文字列は、 stringの後ろから数えて start番目から始まる文字列となります。

string の長さが start 文字より短い場合は FALSE が返されます。

length

length が指定され、かつ正である場合、 返される文字列は start (string の長さに依存します) から数えてlength文字数分となります。

length が指定され、かつ負である場合、 string の終端からその文字数分の文字が省略されます (start が負の場合は、 開始位置を算出したあとで)。 もし start が切り出し位置を超える場合、 FALSE が返されます。

length が指定され、かつ 0、NULL、もしくは FALSE であれば、空の文字が返されます。

length を省略した場合は、 start の位置から文字列の最後までの部分文字列を返します。

返り値

string の一部を返します。失敗した場合に FALSE を返します。あるいは空文字列を返します。

変更履歴

7.0.0

string の文字数が start と等しい場合に空文字列を返すようになりました。 これまでのバージョンでは、FALSE を返していました。

5.2.2 – 5.2.6

start が負の切り出しを意味したり 切り出し位置を超える値になった場合に false を返すようになりました。 それ以外のバージョンでは、文字列の先頭から取得します。

trim

(PHP 4, PHP 5, PHP 7)

文字列の先頭および末尾にあるホワイトスペースを取り除く。

説明

str の最初および最後から空白文字を取り除き、 取り除かれた文字列を返します。2番目のパラメータを指定しない場合、 trim()は以下の文字を削除します。

  • ” ” (ASCII 32 (0x20)), 通常の空白。
  • “\t” (ASCII 9 (0x09)), タブ。
  • “\n” (ASCII 10 (0x0A)), リターン。
  • “\r” (ASCII 13 (0x0D)), 改行。
  • “\0” (ASCII 0 (0x00)), NULバイト
  • “\x0B” (ASCII 11 (0x0B)), 垂直タブ

パラメータ

str

ホワイトスペースを取り除く string

character_mask

character_maskパラメータにより、削除する 文字を指定することも可能です。削除したい全ての文字をリストに してください。..を文字の範囲を指定する際に 使用可能です。

返り値

ホワイトスペースを取り除いた文字列

ucfirst

(PHP 4, PHP 5, PHP 7)

文字列の最初の文字を大文字にする。

説明

str の最初の文字がアルファベットであれば、 それを大文字にします。

「アルファベット」かどうかというのは現在のロケールにより決定されます。 たとえば、デフォルトの “C” ロケールでは、a ウムラウト (ä) は変換されません。

パラメータ

str

入力文字列。

返り値

変換後の文字列を返します。

ucwords

(PHP 4, PHP 5, PHP 7)

文字列の各単語の最初の文字を大文字にする。

説明

文字がアルファベットの場合、str の各単語の最初の文字を大文字にしたものを返します。

単語の定義は、delimiters で指定した任意の文字 (デフォルトはスペース、フォームフィード、改行、キャリッジリターン、 水平タブ、垂直タブ) の直後にある、あらゆる文字からなる文字列です。

パラメータ

str

入力文字列。

delimiters

オプションの delimiters で、単語の区切り文字を指定します。

返り値

変更後の文字列を返します。

変更履歴

5.4.32, 5.5.16

delimiters パラメータが追加されました。

vfprintf

(PHP 5, PHP 7)

フォーマットされた文字列をストリームに書き込む。

説明

format によって作成された文字列を handle で指定したストリームに書き込みます。

fprintf() と同様の動作をしますが、 可変引数ではなく引数の配列を受け取って処理します。

パラメータ

handle

fopen() を使用して作成したファイルシステムポインタリソース。

format

format については、 sprintf() のドキュメントで説明されています。

args

文字列が要素になった配列

返り値

出力された文字列の長さを返します。

vprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

フォーマットされた文字列を出力する。

説明

formatに基づき文字列フォーマットされた文字列を出力します (フォーマットは sprintf() のドキュメントに既述されています)。

printf() と動作は同じですが、可変長の引数ではなく、 配列を引数として受け取ります。

パラメータ

format

format についての説明は sprintf() を参照ください。

args

文字列が要素になった配列

返り値

出力された文字列の長さを返します。

vsprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

フォーマットされた文字列を返す。

説明

sprintf()と動作は同じですが、 可変長の引数ではなく配列を引数とします。

パラメータ

format

format についての説明は sprintf() を参照ください。

args

文字列が要素になった配列

返り値

(sprintf()のドキュメントに記述された) format に基づきフォーマットされた文字列として配列値を返します。

wordwrap

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

指定した文字数で文字列を分割する。

説明

指定した文字数で、指定した文字を用いて文字列を分割します。

パラメータ

str

入力文字列。

width

文字列を分割するときの文字数。

break

オプションのパラメータ break を用いて行を分割します。

cut

cut を TRUE に設定すると、 文字列は常に指定した width でラップされます。このため、 指定した幅よりも長い単語がある場合には、分割されます (2 番目の例を参照ください)。 FALSE にすると、たとえ width が単語の長さより短かった場合でも、その単語を分割しません。

返り値

受け取った文字列を指定した長さで分割したものを返します。

  • このエントリーをはてなブックマークに追加

水蕗をフォローする

コメントを残す