※このサンプルの解説は、「CGI(Perl)の解説」をすべて読み終えてる方を前提としています。

■ 文字列の分割

今回は文字列の分割を解説します。
CGI(Perl)の解説」で説明できなかった次の命令を解説してみましょう。


split()

文字列を指定した文字で区切り、配列変数にセットすることができます。


上記の関数は言葉で説明するよりサンプルを見てもらったほうが解かりやすいと思います。

【 解    説 】

まず、「,(カンマ)」で区切られた次のようなデータを用意します。
$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);

上記の命令を確認するため次のようなサンプルを作ってみました。

【記述サンプル】
#!/usr/bin/perl print << "END_DOC"; Content-type:text/html\n\n <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"; $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
◆実行結果について

上記のサンプルを「strdev.cgi」という名前で保存して実行してみてください。

実行結果はこちらをクリックしてください。
なお、実行結果については、各々のサーバーの環境、ユーザーの環境にによって内容は変わってきます。


page update:2010/01/23 20:32

Copyright (c) 2000-2009, all Rights Reserved & Produced by atom