strspn: 指定したマスク内に含まれる文字からなる文字列の最初のセグメントの長さを探す (String 関数) - PHPプロ!マニュアル

PHPマニュアル

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

strspn

(PHP 4, PHP 5)

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

説明

int strspn ( string $subject , string $mask [, int $start [, int $length ]] )

subject の中で、 mask 内の文字が連続する最初の部分の長さを返します。

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

たとえば、

<?php
$var 
strspn("42 is the answer to the 128th question.""1234567890");
?>
このコードは、$var2 を代入します。これは、 subject の中で "1234567890" 内の文字だけで構成される 最初の部分が "42" であるためです。

パラメータ

subject

調べたい文字列。

mask

セグメントを数える際に許可する文字の一覧。

start

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

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

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

length

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

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

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

返り値

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

変更履歴

バージョン 説明
4.3.0 start および length が追加されました。

例1 strspn() の例

<?php
echo strspn("foo""o"12); // 出力は 2
?>

注意

注意: この関数はバイナリデータに対応しています。

参考

  • strcspn() - マスクにマッチしない最初のセグメントの長さを返す


PHPマニュアル



Pick Up Q&A

Q
セッションがいいのか、それともデータベースがいいのか教えて下さい。
 このエントリーをはてなブックマークに追加 
A
>ボタンをクリックしたら選んだ商品情報を持っておきたいと思っています。 そのくらいのことならセッションもしくはCookie(期限短め:場合によってはブラウザ閉じるまで)でいいんじゃないですかね。 #わ...

>>続きを読む

一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)