好的,所以我试图建立一个我可以打电话的系统:
echo _stringClamp("string");
它推动"字符串" &安培;随机字符串(需要每次刷新一个新的随机字符串)到一个数组,如果我调用它两次
echo _stringClamp("string");
echo _stringClamp("string");
它将回显相同的值。 这是我到目前为止所做的。
<?php
function _stringClamp ($string){
$stringSave = $string;
$stringChars = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890";
$strings = array();
$string = str_shuffle($string);
$string = "__" . $string;
$id = end($strings);
for ($i = 0; $i < 15; $i++) {
$string.= $stringChars[rand(0, strlen($stringChars) - 1)];
}
$strings[$stringSave] = $stringSave;
if (in_array($stringSave, $strings)) {
return $strings[$string];
}else{
$strings[$stringSave] = $string;
print_r($strings);
}
}
echo _stringClamp("IDs");
echo "<br>";
echo _stringClamp("IDs");
?>
答案 0 :(得分:1)
为了得到你所要求的东西你可能需要在调用函数之前生成随机值,然后使用该随机值作为第二个参数,例如:
<?php
$num = rand(0, 100000);
echo _stringClamp("string", $num);
echo _stringClamp("string", $num);
?>
这将提供在您的函数中使用的随机数,但如果您刷新页面,则数字将会更改。但是,如果在同一页面上调用两次,它将具有相同的输出值....对吗?
您甚至可以使用随机生成的字符串而不是数字...
答案 1 :(得分:0)
如果我理解正确,您需要使用hash-functions(保证相同输出的输出相同)。
答案 2 :(得分:0)
只是哈希当前时间。
$Seed = time();
$RandomString = md5($Seed);
如果您不希望字符串可预测(例如,知道脚本何时运行可以让某人预测字符串),那么使用随机数生成器......
$Seed = rand();
$RandomString = md5($Seed);
只要变量在函数外部声明...
$RandomString = md5(time());
function _stringClamp($String) {
global $RandomString;
return $String . $RandomString;
}
每次都应该获得相同的字符串