Здравствуйте. Подтолкните плиз на мысль. Необходимо написать функцию, которая при каждом вызове возвращает новую строку. Выглядеть это должно так: aaa, aab, aac, aba, abb, abc, aca, acb, acc, baa, bab, bac, bba, bbb, bbc, bca, bcb, bcc, caa, cab, cac, cba, cbb, cbc, cca, ccb, ccc Символы используемые в строке должны задаваться в массиве: ['a','b','c'...], для того, чтобы можно было самому устанавливать количество и значение символов. Когда все варианты строки перечислены, то строка должна увеличивается на один символ: aaaa,aaab,aaac,aaba,aabb,aabc,aaca... Я понимаю что тут циклами с проверками, но не могу собрать логику. Наведите на мысль. Спасибо!
задача: - получаем строку 'aaa'; - прибавляем к строке домен 'aaa'.'.com' (прим.); - получаем код сайта через file или file_get_contents; - если в коде сайта обнаруживаем нужную нам информацию, то возвращаем имя домена, если нет, получаем строку 'aab' и повторяем действия;
ну так вот есть массив у тебя идешь в цикле по нему в берешь твою строку ааа складываешь ее со с доменном запускаешь file_get_contents проверяешь выдал он тебе ошибку либо подгрузил и в зависомости от результата возвращаешь либо aab либо домен. в чем сложность то?
сложность в том, что забивать все варианты в массив хлопотно: [aaa, aab, aac, aba, abb, abc, aca, acb, acc, baa, bab, bac, bba, bbb, bbc, bca, bcb, bcc, caa, cab, cac, cba, cbb, cbc, cca, ccb, ccc] Это только варианты с трёхзначной строкой, когда скрипт их обработает, строка должна стать 4-х значной, там уже вариантов будет в несколько раз больше. А про 5-значную и так далее я уже не говорю. Мне надо чтобы строка создавалась динамически, в зависимости от предыдущей строки. Но я уже близко к теме. Это то же самое, что и подбор пароля, проверил пароль "ааа", если не подошел, то проверил "aab" и т.д. Не забивать же все возможные варианты пароля вручную. На это не хватит жизни.
Спасибо, я так долго уже давно не ржал, над собой! Ведь я сделал то же самое: PHP: function getString(){ static $chars = Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); static $arr = Array('a','a','a'); static $first = false; $bool = true; if($first){ foreach($arr as $val){ if($val != $chars[count($chars)-1]){$bool = true; break;} else{$bool = false;}; }; if($bool){ $i = count($arr)-1; while($i > -1){ if($arr[$i] == $chars[count($chars)-1])$arr[$i] = $chars[0]; else{ $arr[$i] = $chars[array_search($arr[$i], $chars)+1]; break; }; $i--; }; }; if(!$bool){ foreach ($arr as $key => $value) { $arr[$key] = $chars[0]; }; $arr[] = $chars[0]; }; }; $first = true; return join($arr, ''); }; getString(); // aaa getString(); // aab getString(); // aac ... getString(); // zzz getString(); // aaaa getString(); // aaab ... Только в моей функции можно задавать перечисляемые значения.