2015-05-12 2 views
-4

Я хочу хэш строку «текст» три раза.Повторить функцию X раз в PHP

md5(md5(md5('text'))); 

Однако, если мне нужно применить функцию намного больше раз, это было бы смешно делать. Как я могу повторить, например, функцию md5() X раз?

+0

Это не имеет никакого отношения к этому. Пожалуйста, прочитайте обе темы. – schmitsz

+0

Я сказал, что я дал эту функцию в качестве примера. И да, я пробовал это, но это отличается от моего случая. Я бы предпочел, если вы не сможете не продолжать это. – schmitsz

+3

Никто не будет продолжать эту позицию. – AbraCadaver

ответ

2
$pass = "dongs"; 
for($i = 0; $i < 5; $i++) $pass = md5($pass); //$pass will be hashed with md5() 5 times 

Example

+0

Да, это то, о чем я просил. Спасибо за ваше время. Примите ответ как можно скорее. – schmitsz

3

Используя пример Фред -ii- связан с:

$i = 0; 
$times_to_run = 16; 
$hash = 'text'; 
while ($i++ < $times_to_run) 
{ 
    $hash = md5($hash); 
} 
+0

О, да, я был быстро сбит за тебя? Я удалил все свои комментарии. Я знаю, когда меня не хотят. –

+0

Этот, да ... – nitram

+0

Я бы проголосовал, но мне придется подождать, пока Стек не позволит мне. Я использовал их все до сих пор. –

1

Или более универсальным:

function recursive_call($call, $iters, $variable){ 
    $result = $variable; 
    for ($i=0; $i<$iters; $i++) $result = $call($result); 
    return $result; 
} 
echo recursive_call('md5', 3, 'text'); 

И какая-то магия:

function rcall2($call, $iters, $var){ 
    $result = $call($var); 
    if ($iters > 1) $result = rcall2($call, $iters-1, $result); 
    return $result; 
} 
rcall2('md5', 3, 'text'); 
Смежные вопросы