вопросы и ответы по использованию PHP
-
ттбрть
- Сообщения: 36
- Зарегистрирован: 19 дек 2019, 08:08
- Откуда: хохляндия
Сообщение
ттбрть » 12 фев 2020, 19:53
после цыфр должны ити 2 буквы
комбинацыя букв не должна повторятся
я придумал только вариант написать 676 переменных R под каждый вариант из 2 букв но это долго и заниматся таким лень
есть идеи как сделать это проще?
Код: Выделить всё
$browser->navigate("https://www.google.ru/");
$W="R";
$E="1";
$NB= "123456789";
$R1="qq";
$R2="qw";
$R3="qe";
$R4="qr";
$R5="qt";
$Q="$W$E";
$input->set_value_by_name("q","$NB".$$Q);
$E++;
-
XwebDeveloper
- Сообщения: 51
- Зарегистрирован: 13 ноя 2017, 12:53
Сообщение
XwebDeveloper » 12 фев 2020, 22:41
Можно так сделать, но вариантов получается явно больше чем 676
.
Все полученные комбинации в массиве $aresult;
// количество полученных результатов
$count_res=1000;
// массивы
$characters = 'abcdefghijklmnopqrstuvwxyz';
$numbers = '0123456789';
// комбинации числа
$length = 2;
$anumbers = array();
// результат
$len_res=4;
$aresult = array();
// заполняем массив с цифрами
get_combin_numbers('');
//print_r($anumbers);
foreach($anumbers as $num)
{
get_combination($num);
}
print_r($aresult);
// получить все комбинации чисел
function get_combin_numbers($prefix)
{
global $numbers,$length,$anumbers;
if (strlen($prefix) == $length)
{
$anumbers[ ] = $prefix;
return;
}
for ( $i = 0; $i < strlen( $numbers); $i++ )
get_combin_numbers( $prefix.$numbers{$i});
}
// комбинации букв
function get_combination($prefix)
{
global $characters,$len_res,$aresult,$count_res;
if(count($aresult)>=$count_res)
return;
if (strlen($prefix) == $len_res)
{
$aresult[ ] = $prefix;
return;
}
for ( $i = 0; $i < strlen( $characters ); $i++ )
get_combination( $prefix.$characters{$i});
}
-
ттбрть
- Сообщения: 36
- Зарегистрирован: 19 дек 2019, 08:08
- Откуда: хохляндия
Сообщение
ттбрть » 14 фев 2020, 03:03
[674] => 00zy
[675] => 00zz
[676] => 01aa
[677] => 01ab
[678] => 01ac
не больше) хотя и я ошибся не 676 а 675
К утру нужно запустить авторег с использыванием этого скрипта
Час ушел на то чтоб понять как избавится от этих цыфр [678] =>
01aс оказалось не нужно было ничего удалять) а просто заменить $length = 2; на 0
использывал я это вот так )
Код: Выделить всё
$NN=0;
for ($meil=1; $meil<9999; $meil++)
{
$NN++;
$laters=($aresult[$NN]);
$input->set_value_by_name("username", "9855576XXX$laters");
я уверен что не правельно и это можно сделать проще но ещё не дорос до уровня бога из машины и пусть с костылями но работает как надо
-
XwebDeveloper
- Сообщения: 51
- Зарегистрирован: 13 ноя 2017, 12:53
Сообщение
XwebDeveloper » 14 фев 2020, 15:19
Хозяин Гугла писал(а): ↑14 фев 2020, 14:21
Код: Выделить всё
$n = mt_rand(0, 99);
$l = $submitter->generate_random_nick_name(rand(2,2));
echo "$n$l";
не?
надо чтоб не повторялось) Можно и так но тогда придётся сохранять это дело в массив и смотреть нет ли там уже такого.