2012-05-13 16 views
2

メンバーIDの値を持つデータベースがあります。 (常に8桁の長さ) 会員が有料リストに登録されている場合は、IDに「SI」という接頭辞が追加されます。例えば特定の正規表現関数

John: 12345678 

Jack: SI87654321 

今私は「SI」は数の先頭に存在しているかどうかを確認する関数を記述したいと思います。 (数字から "SI"を抽出する何らかの正規表現)

はいの場合 - > ID番号(SIなし)を返す場合は、YESラジオボタンがチェックされます。 (checked = "checked")

- > ID番号を返す場合は、ラジオボタンがチェックされていません。 (チェック= "確認")

例:

PHP:

$ID = get from database (for example: SI12345678) 

function check() {return $pureNumber} 

HTML:あなたの助け

答えて

5

ため

<body> 
<?php echo $pureNumber ?><br/> 
<label for="dz1"><input type="radio" value="SI" name="davzav" id="dz1"/>YES(SI)</label> 
<label for="dz2"><input type="radio" value="" name="davzav" id="dz1"/>NO</label> 
</body> 

おかげであなただけの最初の二つをチェックすることができます文字:

if(substr($id,0,2) == "SI") { 
    $is_si = true; 
    $id = substr($id,2); 
} 
+0

はすばらしくてシンプルに見えます。チェックボックスはどうですか?これは大丈夫だと思いますか? :<?php if($ is_si == true){echo "checked = 'checked'"; }?> – John

+1

これはまさに正しいものです(個人的には 'if($ is_si)'を 'true 'と比較することは冗長です) –

2

あなたは、このための正規表現を必要としない:

if (0 === strncmp($userid, 'SI', 2)) { 
    echo "SI number: ", substr($userid, 2); 
} else { 
    echo "Not SI number: ", $userid; 
} 
1

あなたが正規表現と1行でこれを行うにしたい場合は、次のコードは、あなたの番号を返します。

$result = preg_replace("/^SI/", '', $in, 1); 

次に、$結果値を$ in値と比較します。

if ($result != $in) { checked = "checked";}