[PHP-users 13089] Re: 任意の数値を特定文字列にフォーマットする方法

sorako yamamoto php-users@php.gr.jp
Thu, 06 Feb 2003 02:36:53 +0000


こんにちは。
重松さん、福岡さんご回答の程ありがとうございます。


>それに日付以外でも「単なる 8 桁の数値」はなんでも YYYYMMDD に置換され、
>都合が悪いでしょう。

>元の要件がいまいちわからなかったので、コメントしませんでしたが、
>正規表現を使えば済むと思います。

>日付の確認は、そういう関数もあることだし。


お二人のご助言を下に、サンプルプログラムを書いてみました。
ただ、日付確認のところで引っかかっています。


********* サンプルプログラム *********


$before[0] = "20030101.txt" ;
$before[1] = "sample_20030101.txt" ;
$before[2] = "999.txt" ;
$before[3] = "sample_999.txt" ;

$cnt = count( $before ) ;
for( $i = 0 ; $i < $cnt ; $i++ ) {
 // 6桁の数値があるか?
 if( preg_match( '/\d{6}/' , $before[i] ) ) {

 // ↓ ↓ ここで悩んでいます。↓ ↓ 
 /*****************  
   // matchした物が日付がどうか調べる。
  
  	if( 日付だったら ) 
  *****************/

	  $after[$i] = preg_replace('/\d{6}/','YYYYMMDD', $before[$i] ) ;
  }
 // 3桁の数値があるか?
  else if( preg_match( '/\d{3}/' , $test[$i] ) ) {
	$after[$i] = preg_replace('/\d{3}/','AAA', $before[$i] ) ;
  }

  print "before[" . $i . "]=" . $before[$i] ;
  print "after [" . $i . "]=" . $after[$i] ;

}

**************************************

申し訳ありませんが、もう少しアドバイスいただけないでしょうか?
あと、正規表現の使い方がいまいち???なのですが、
どの辺を参考にして学習したらよいのでしょうか?

よろしくお願いします。







_________________________________________________________________
自宅の PC で英語力をアップ MSN 英会話   http://englishtown.msn.co.jp/