【问题标题】:stripping random number with substr problem用 substr 问题剥离随机数
【发布时间】:2011-01-11 12:25:29
【问题描述】:

使用随机数包含在另一个字符中。然后我想去掉随机数,只留下另一个字符。我有这段代码可以始终如一地生成随机数(8 个字符长)。如果您多次点击刷新按钮,即使“随机数”和“ID”仍然存在,“ID”字段也会消失。不确定 substr 函数中刷新时随机数发生了什么。 这是代码:

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

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

    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 /////////////////////////////////////////

【问题讨论】:

  • 您有一些语法错误。我强烈建议您使用像 Notepad++ 这样的语法高亮编辑器。另外,不要使用智能引号。
  • 很抱歉,您的代码真的是一团糟。变量命名的目的似乎是为了确保程序员的工作,有些行根本没用(如$lcrs9 = str_replace(' ', '', $lcrs9); # what for? there is no $lcrs9!)或echo ""; # there is the smart quote!if ( $ResHeadID == "") { ""; /* WTF? */ }每当发布问题时请提供一些可读

标签: php random substring


【解决方案1】:

我认为你的问题出在一线
$ResHeadID = preg_replace('/[\s]+/',' ',$ResHeadID);

您的随机数可能以数字开头。如果是这种情况,preg 替换将有一些偏移量并杀死您的 ID。

你的随机字符串有一个固定的长度,所以我建议简单地做 $TrkRa1 = substr($ResHeadID, 8); 在你的 else 子句中。

【讨论】:

  • 非常感谢。我清理了代码,您的修复工作完美。再次感谢您。
  • 很高兴为您提供帮助,如果您将此问题标记为已解决/我的答案已被接受,那就太好了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多