2011-01-11 6 views
0

別の文字に含まれる乱数の使用。次に、乱数を取り除き、もう一方の文字を残したいと思います。私は乱数(8文字の長さ)を一貫して生成するこのコードを持っています。リフレッシュボタンを複数回押すと、「乱数」と「ID」がまだ残っていても、「ID」フィールドは消えます。 substr関数のリフレッシュ時に何が起こっているのか不明です。 これはコードです:substr問題による乱数の除去

// Begin Create Random ID Code ///////////////////////////////////////// 

function gRanStr1() { 
    $length1 = 8; 
    $characters = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”; 

    for ($p = 0; $p < $length1; $p++) { 
     $lcrs1 .= $characters[mt_rand(0, strlen($characters)-1)]; 
    } 

    $lcrs9 = str_replace(' ', '', $lcrs9); 

    return $lcrs1; 

} 

// End Create Random ID Code ///////////////////////////////////////// 

// Begin Decode Random ID Code ///////////////////////////////////////// 

$TrkR99 = "c"; 

$ResHeadID = gRanStr1() . $TrkR99; 

$ResHeadID = preg_replace('/[\s]+/',' ',$ResHeadID); 

echo "”; 
echo $ResHeadID . ” = echo of Random Number plus ID“; 

for($i=0; $i<strlen($ResHeadID); $i++){ 
    if(!is_numeric(substr($ResHeadID, $i, 1))){ 
     $Index1 = $i; 
     break; 
    } 
} 

if ($ResHeadID == "") { 
    ""; 
} else { 
    $ResHeadID = preg_replace('/[\s]+/',' ',$ResHeadID); 
    $TrkRa1 = substr($ResHeadID, $Index1 + 8, 1); 
} 

$dTrkRes = $TrkRa1; 

echo $TrkRa1 . " = echo of ID after random number stripped.“; 

echo “”; 

// End Decode Random ID Code ///////////////////////////////////////// 
+1

構文エラーがあります。メモ帳++のような構文ハイライトエディタを使用することを強くお勧めします。また、スマート引用符を使用しないでください。 – Jonah

+0

申し訳ありませんが、あなたのコードは本当に大きな混乱です。変数の命名目的はプログラマーの仕事を確保するようですが、 '' $ lcrs9 = str_replace( ''、 ''、$ lcrs9);#何のために$ lcrs9! ')や 'echo ""; #スマート引用符があります! 'または 'if($ ResHeadID ==" "{" ";/* WTF? * /} '質問を掲示するたびに何かを提供してください**可読** –

答えて

0

私はあなたの問題を考える
$ResHeadID = preg_replace('/[\s]+/',' ',$ResHeadID);

あなたの乱数を数字で始めることができるラインです。これが当てはまる場合、preg replaceはいくらかのオフセットを持ち、あなたのIDをkillします。

あなたのランダムな文字列は固定長ですので、else節に $TrkRa1 = substr($ResHeadID, 8);とするだけです。

+0

ありがとうございます。私はコードを整理し、あなたの修正は完全に動作します。ありがとうございました。 – Jim

+0

あなたがこの問題を解決した/私の答えとして受け入れるようにしておけば、助けてうれしいです:) –