※このサンプルの解説は、「CGI(Perl)の解説」をすべて読み終えてる方を前提としています。
後になるほど省略されている場合がありますのでできるだけ順番に読んでください。
また、実行に際しては、サーバーでPHPが利用できる事を前提に解説しています。
■ 文字列の分割
今回は文字列の分割を解説します。
- explode((区切り文字列), (対象文字列))
-
文字列を区切り文字列で分割し、配列変数にセットすることができます。
- split((区切り文字列), (対象文字列))
-
「explode()」関数と同義です。
上記の関数は言葉で説明するよりサンプルを見てもらったほうが解かりやすいと思います。
- 【 解 説 】
-
まず、カンマで区切られた文字列を、次のように変数
「$str0」
にセットします。
$str0 = "0001,John,35";このデータを
「split()」
関数を使い分割する場合は、次のように記述します。
$strbuf = split(",", $str0);また、データによっては
「,(カンマ)」
が使えない場合があります。
そういう時は「タブ」で区切られた次のようなデータを用意し、 同様に「split()」
関数で分割するには、次のように記述します。
$str0 = "0002 Kate 26"; $strbuf = split("\t", $str0);「KENT WEB」さんの掲示板のCGIなどでは「<>」という2文字の記号を使い区切っていたりします。
そのような場合も次のように記述して分割することができます。
$str0 = "0003<>George<>18"; $strbuf = split("<>", $str0);
上記の命令を確認するため次のようなサンプルを作ってみました。
- 【記述サンプル】
- <?php print <<< END_DOC <HTML> <HEAD> <title>文字列の分割</title> </HEAD> <BODY> END_DOC; $str0 = "0001,John,35"; $strbuf = split(",", $str0); print "No:$strbuf[0]<br>\n"; print "名前:$strbuf[1]<br>\n"; print "年齢:$strbuf[2]<br><br>\n"; //次の行の区切りは「TAB」キーで区切ります。 $str0 = "0002 Kate 26"; $strbuf = split("\t", $str0); print "No:$strbuf[0]<br>\n"; print "名前:$strbuf[1]<br>\n"; print "年齢:$strbuf[2]<br><br>\n"; $str0 = "0003<>George<>18"; $strbuf = split("<>", $str0); print "No:$strbuf[0]<br>\n"; print "名前:$strbuf[1]<br>\n"; print "年齢:$strbuf[2]<br><br>\n"; print <<< END_DOC </BODY> </HTML> END_DOC;