[PHP] 「@」以降の文字列を抽出する
Write : 2005/12/21
例文説明
"mail@profaim.jp" という文字列から@以降の文字列を抽出します。
1: |
<?php |
2: |
$source_str = 'mail@profaim.jp'; |
3: |
$pos = strpos( $source_str, '@' ); |
4: |
$res_str = substr( $source_str, $pos+1 ); |
5: |
?> |
例文解説
PHP スクリプトタグ(1行目/5行目)
1行目の <?php から、6行目の ?> で囲まれた部分が、PHP Script として処理される内容となります。
変数への代入(2行目)
2行目の $source_str = 'mail@profaim.jp';
では、変数 source_str に文字列 'mail@profaim.jp' を代入しています。これは、'@' を検索する場合と文字列を抽出する場合とで同じ文字列を2度書かないようにするための配慮です。
strpos関数 による文字位置検索(3行目)
3行目では、strpos 関数を用いて 文字列 'mail@profaim.jp' から '@' のオフセットを取得し、変数 pos に代入しています。文字列のオフセットは 0 から始まるので、下表から'@'のオフセットは 4 と求まります。
オフセット |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
文字列 |
m |
a |
i |
l |
@ |
p |
r |
o |
f |
a |
i |
m |
. |
j |
p |
substr関数による文字列抽出(4行目)
4行目では、substr 関数を用いて '@' 以降の文字列抽出を行っています。3行目から '@' のオフセットが 4 と求まったので(求まったオフセット + 1) から文字列を切り出せば、'@' 以降の文字列を抽出することができます。
オフセット |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
文字列 |
m |
a |
i |
l |
@ |
p |
r |
o |
f |
a |
i |
m |
. |
j |
p |
結果として、文字列 "profaim.jp" が抽出され、変数 res_str に代入されます。