Обычный код для заполнения строки он должен заполнять строку 7 символами (рандомными) но иногда бывает такое что выдает и 3 и 2 символа в место 7 в чем причина ?
<?php
$byk = "qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM1234567890{}[].,:;?";
for($i=0;$i<7;$i++){
$rand = rand(1,73);
$ban=$byk[$rand];
$itog.=$ban;
}
echo $itog;
Потому что длина строки в переменной $byk меньше на две единицы, чем максимально генерируемое число в rand(1,73), и если рандомно выпадает несуществующий индекс (72 или 73), то в результирующую переменную не добавляется ничего. Что бы избежать этого, нужно делать замер длины строки, и это значение брать за максимум для рандомного генератора:
$str = "qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM1234567890{}[].,:;?";
$max = strlen($str) - 1;
$result = '';
for ($i = 0; ++$i <= 7;) {
$rand = rand(0, $max);
$result .= $str[$rand];
}
echo $result;
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости