banana.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/usr/bin/php
  2. <?php
  3. echo bananaencode(5000) . "\n";
  4. echo bananaencode(10000) . "\n";
  5. echo bananaencode(1000, 8) . "\n";
  6. echo bananarandom() . "\n";
  7. echo bananarandom(10) . "\n";
  8. function bananaencode($num, $minlength = 1) {
  9. $alphabets = Array(str_split("bcdfglmnprstvz"), str_split("aeiou"));
  10. $shiftalpha = 0;
  11. $alphaend = 0;
  12. $numalpha = count($alphabets);
  13. $v = $num;
  14. $st = "";
  15. $length = 0;
  16. $idx = ($numalpha - 1 + $shiftalpha + $alphaend) % $numalpha;
  17. while (!($v == 0 && $idx == ($numalpha - 1 + $shiftalpha) % $numalpha && $length >= $minlength)) {
  18. $al = $alphabets[$idx];
  19. $r = $v % count($al);
  20. $v = intval($v / count($al));
  21. $st = $al[$r] . $st;
  22. $idx = ($idx + $numalpha - 1) % $numalpha;
  23. $length = $length + 1;
  24. }
  25. return $st;
  26. }
  27. function bananarandom($minlength = 6) {
  28. $alphabets = Array(str_split("bcdfglmnprstvz"), str_split("aeiou"));
  29. $shiftalpha = 0;
  30. $alphaend = 0;
  31. $numalpha = count($alphabets);
  32. $st = "";
  33. if ($minlength < 1) {
  34. return "";
  35. }
  36. $curr_alpha = ($numalpha - 1 + $shiftalpha + $alphaend) % $numalpha;
  37. $final_alpha = ($numalpha - 1 + $shiftalpha) % $numalpha;
  38. while ($curr_alpha != $final_alpha || strlen($st) < $minlength) {
  39. $al = $alphabets[$curr_alpha];
  40. $st = $al[intval(rand(0, count($al) - 1))] . $st;
  41. $curr_alpha = ($curr_alpha + $numalpha - 1) % $numalpha;
  42. }
  43. return $st;
  44. }
  45. ?>