1. PHP / Говнокод #23826

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    <?php
    
    $zero = '!![]';
    $nums = ['![]','${![]}','${!![]}','$${[]}','$${![]}','$${!![]}','$$${[]}','${[].[]}'];
    $initChr = "\${[]}=([].[])[![]+![]+![]];\${[]}++;\${[]}++;\${+![]}=\${[]};" .
    "\${[]}++;\${[]}++;\${[]}++;\${[]}++;\${[]}++;\${+![]}.=\${[]};" .
    "\${[]}=\${+![]}.([].[])[![]];";
    $chr = '${[]}';
    
    function initNumbers() {
        global $nums;
        $n = $nums[0];
        $code  = '';
        foreach ($nums as $v => $num) {
            if (!$v) continue;
            $v = join('+', array_fill(0, 2, $n));
            $code .= "$num=$v;";
            $n = $num;
        }
        return $code;
    }
    
    function number($n) {
        global $nums, $zero;
        if ($n < 0 || $n > 255) die("Invalid number: $n.");
        if (!$n) return $zero[0];
        $i = 0;
        while($n) {
            $d = $n % 2;
            if($d) $code[] = join('+', array_fill(0, $d, $nums[$i]));
            $n /= 2;
            $i++;
        }
        return join('+', $code);
    }
    
    function char($c) {
        global $chr;
        $c = number(ord($c));
        return "$chr($c)";
    }
    
    function str($s) {
        return join('.', array_map('char', str_split($s)));
    }
    
    function prettify($fucked) {
        $line = '';
        $ops = preg_split('/([;.])/', $fucked, -1, PREG_SPLIT_DELIM_CAPTURE);
        foreach($ops as $op) {
            if(strlen($line) + strlen($op) + 1 > 80) {
                $lines[] = $line;
                $line = '';
            }
            $line .= $op;
        }
        $lines[] = $line;
        return join("\n", $lines);
    }
    
    function fuckify($code) {
        global $chr, $initChr;
        $nums = initNumbers();
        $php = '$$$${[]}';
        $initPHP = $php . '=(' . str('popen') . ')(' . str('php') . ',' . char('w') . ');';
        $fputs = str('fputs');
        $pclose = str('pclose');
        $code = str($code);
        return prettify("<?php\n$initChr$nums$initPHP($fputs)($php,$code);($pclose)($php);");
    }
    
    $code = '';
    while ($line = fgets(STDIN)) $code .= $line;
    print(fuckify($code));

    Автаматизировала пхпфак почти как в http://govnokod.ru/23690
    програма вводет код пхп из stdin и выводет в stdout его перивод на пхпфак

    Запостил: HACTEHbKA, 25 Февраля 2018

    Комментарии (4) RSS

    • периводим https://ideone.com/YA6ZAG
      запускаем https://ideone.com/8iECEZ
      Ответить
    • если ты будиш писать напхп то борманд тибя не будет любить а будет вместо нево стертор и поверь тебе это ни панравиться
      Ответить
      • Стертору же тян не нужны. Так что бояться нечего.
        Ответить
    • Ya perepesala?
      Ответить

    Добавить комментарий