2006年7月 5日

[PHP-users 29626] 正規表現の値の確保

こんにちは、Shouです。

正規表現で正しい日付の判別を行おうとしているのですが、
if( Ereg( "^[0-9]+/[0-9]+/[0-9]+$" , $_REQUEST["birthday"], $backRef ) ) {
if( CheckDate( $backRef[2],$backRef[3],$backRef[1] ) ) { //月、日、年の順番で
print "正しい書式です\n";
} else {

print "不正な入力:存在しない日付\n";
}
} else {
print "不正な入力:yyyy/mm/dd形式で\n";
}
print "\n";
print_r( $backRef );
?>




無題ドキュメント




というコードを、変数birthdayに適切な値を入力して実行すると、正しい値が確保されていても
Notice: Undefined offset: 2 in c:\inetpub\wwwroot\formcheck\checkData.php on line 3

Notice: Undefined offset: 3 in c:\inetpub\wwwroot\formcheck\checkData.php on line 3

Notice: Undefined offset: 1 in c:\inetpub\wwwroot\formcheck\checkData.php on line 3
不正な入力:存在しない日付 Array ( [0] => 1971/02/14 )
というメッセージが出ます。
配列backRefには0番の要素しか入っていないとのことですが、書籍にはEreg関数の後方参照には1番から配列が入力されると書いてありました。
PHPマニュアルにも同様のことが書いてありました。
どのようにしたら[1]〜[3]の配列要素を確保できるのでしょうか。
PHP5.1.4
Windows2000SP4です。

よろしくお願いします。
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3

投稿者 xml-rpc : 2006年7月 5日 14:03
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/39005
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。