Помочь перебрать циклом регулярку

752
.
# aNNiPAk (21.09.2015 / 22:54)
ДоХтор, Опять не то, код должен сам сгенерировать все варианты паролей с верхним регистром
Ну ты блин сразу можешь написать, что тебе надо?
Я сегодня уже не смогу помочь. Если до завтра никто не отзовётся, то вечером напишу. Ты только сразу всё что надо говори. Подумай, и напиши внятно.
.
Я сделал это!
//$s = "9assqd,bxw8u";
$s = "abcd";
$s = strtolower($s);
$chars = preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);
$len = count($chars);
$result = [$s];
echo "x: y => z\n\n";
for ($x = 1; $x < $len; $x++) {
    echo $x, ":\n";
    for ($y = 0; $y < $len; $y++) {
        echo "  ", $y, " => ";
        $variant = $chars;
        for ($g = 0; $g < $x; $g++) {
            $z = $y + $g;
            if ($z > $len - 1) {
                $z = abs($z - $len);
            }
            echo $z, " ";
            $variant[$z] = strtoupper($variant[$z]);
        }
        echo "\n";
        $variant = join("", $variant);
        $result[] = $variant;
        echo "\t", $variant, "\n";
    }
    echo "\n";
}

$result[] = strtoupper($s);
$result = array_unique($result);
foreach ($result as $v) {
    echo $v, "\n";
}
.
reaper, По идее должно быть больше строк, но это то, что я имел ввиду
.
aNNiPAk, Пойдёт?
/*
 * Copyright (C) 2015 Jahak
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
/**
 * @param string $string
 * @return array
 * @throws Exception
 */
function strUpper( $string )
{
    $string = strtolower($string);

    if ( strlen($string) < 2 )
    {
        throw new Exception('Длинна строки меньше двух символов!');
    }

    $strtoupper = $return = array();

    foreach (str_split($string) as $value)
    {
        $strtoupper[] = strtoupper($value);
        $implode = implode($strtoupper);
        $return[] = $implode . (substr($string, strlen($implode))? : '');
    }

    array_unshift($return, $string);

    return $return;
}

$dictionary = array(
    'aNNiPAk', 'ramzes', 'Koenig', 'reaper', 'Jahak'
);
foreach ($dictionary as $string)
{
    echo '<b>', $string, '</b><br>';
    try {
        foreach (strUpper($string) as $strUpper)
        {
            echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $strUpper . '<br>';
        }
    } catch ( Exception $exc ) {
        echo $exc->getMessage() . '<br>';
    }
}
.
Кадило крутится, лавэха мутится
# Jahak (22.09.2015 / 09:21)
aNNiPAk, Пойдёт?
[php]

/*
* Copyright (C) 2015 Jahak
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as pub
Запихивал бы свои лицензии в блог лучше. А то пихаешь в кусок кода, лицензию на программное обеспечение. У твоей чудо "программы", которая по объему символов сопоставима с объемом лицензии даже названия нет, а ты уже лицензию вставляешь, как будто разработал мега софтину.

В общем перестань вставлять кучу лишних букв, засирая форум бесполезной фигнёй.
.
Потому что я Бэтмен
Simba, как бы давно про это говорил... Вот ответ гуру http://johncms.com/forum/index ... 91208
.
The Fast, Secure and Professional - Yii2
Объясните, что автор хочет сделать.
.
(\/)____o_O____(\/)
Rakovskiy, я так понял нужно получить все возможные комбинации пароля из символов. при разных регистрах
.
(\/)____o_O____(\/)
есть у меня мысль как сделать. надо будет попробовать вечером
.
Koenig, Я буду ждать, ибо вопрос еще актуален
Всего: 59