1. C++ / Говнокод #2133

    +73.2

    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
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    /*
        CANON D-SLR cameras core routine
        Property of CANON INC. 1998-2010
        
        v 1.0 made by Radja Tokamoto Goines
        v 1.1 made by Dugwin Yakioto jr.
        
        last changes: 10.11.2009
    */
    
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    
    #include "inc/tweakfocus.h"
    #include "inc/radja_filters.h"
    
    bool do_focus(lens, camera) {
        double fp;
        time_t t;
    
        t = init_focus_timer(t);
        
        do {
            fp = measure_focus_point(lens);
            move_focus(lens, fp)
    
            if (timeout(t))
                return false;
    
        } while (!lens.is_focused());
        
        if (!L_LensDetected(lens))
            lens.adjust_focus(rand(10));
            
        return true;
    }
    
    rawdata * scandata(matrix, lens, camera) {
        rawdata *cr;
        double noise, aberrations;
    
        cr = create_cr(matrix);
        
        read_exif_info(cr->exif, lens, camera);
    
        prepare_everything(matrix, lens, camera);
        
        if (!do_focus(lens, camera))
            return NULL;
        else 
            beep();
          
        aberrations = pow(100 - lens.focallength, 2) * sqrt(2) + 10;
    
        if (L_LensDetected(lens))
            aberrations /= 2.0;
          
        scan_sensor(cr, matrix, aberrations);
    
        noise = matrix.iso / 100.0;
        noise *= matrix.cropfactor;
    
        if (camera.model == EOS1000D) {
            noise *= 1.2;
            wait_for_something();
        }
    
        if (camera.model != EOS7D)
            wait_for_something();
        
        if (lens.manufacture != CANON_LENS) {
            corrupt_something(cr);
            apply_random_filter(cr);
        }
        
        if (lens.model == EF_50_F1_4) {
            noise /= 1.2;
            apply_fcb(cr); //fucken cool bokeh
        }
        
        if (lens.model == CANON_L_17_40_F4) {
            blur(cr, 0.8);
            distort(cr, 40 - lens.focallength);
        }
          
        radja_filter(cr, 1.570796326794896619231321691641); //don't touch that!
    
        if (is_eos1d_series(camera.model))
            disable_all_spoiling(cr);
        else
            make_nice_colors(cr);
        // finally...
        apply_noise(cr, noise);    
        apply_barrel_distortion(cr, lens);
        apply_pillow_distortion(cr, lens);  
        
        return cr;
    }

    http://habrahabr.ru/blogs/DSLR/74958/
    Исходные тексты прошивки canon eos.
    Многие, наверное, уже слышали, что на днях была взломана внутренняя сеть компании Canon и в числе прочего в сеть «утёк» кусок ядра исходных текстов прошивки камер серии EOS, который я имею честь эксклюзивно опубликовать на суд общественности.
    Говночитатели без ЧЮ идут в *опу.

    sbb, 11 Ноября 2009

    Комментарии (22)
  2. PHP / Говнокод #2132

    +150.9

    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
    <?php
    
    ... 
    
    mysql_select_db($database_store, $store);
    $query_rsThisCategoryItems = sprintf("SELECT DISTINCT store_products.product_name, store_products.image_file, store_products.product_id, store_products.product_price, store_products_to_categories.category_id, store_products.sku FROM store_products_to_categories, store_products WHERE store_products_to_categories.category_id=%s AND store_products_to_categories.product_id=store_products.product_id GROUP BY store_products.product_name", GetSQLValueString($cat_rsThisCategoryItems, "int"));
    $rsThisCategoryItems = mysql_query($query_rsThisCategoryItems, $store) or die(mysql_error());
    $row_rsThisCategoryItems = mysql_fetch_assoc($rsThisCategoryItems);
    $totalRows_rsThisCategoryItems = mysql_num_rows($rsThisCategoryItems);
    
    //product query
    
    $colname_rsThisProduct = "1";
    if (isset($_GET['p_id'])) {
      $colname_rsThisProduct = $_GET['p_id'];
    }
    mysql_select_db($database_store, $store);
    $query_rsThisProduct = sprintf("SELECT * FROM store_products WHERE product_id=%s", GetSQLValueString($colname_rsThisProduct, "int"));
    $rsThisProduct = mysql_query($query_rsThisProduct, $store) or die(mysql_error());
    $row_rsThisProduct = mysql_fetch_assoc($rsThisProduct);
    $totalRows_rsThisProduct = mysql_num_rows($rsThisProduct);
    
    
    //cart contents for header summary
    $colname_rsQuickCart = "-1";
    if (isset($_SESSION['sessionid'])) {
      $colname_rsQuickCart = $_SESSION['sessionid'];
    }
    mysql_select_db($database_store, $store);
    $query_rsQuickCart = sprintf("SELECT * FROM store_cart, store_products WHERE store_cart.session_id = %s  AND store_cart.product_id=store_products.product_id", GetSQLValueString($colname_rsQuickCart, "text"));
    $rsQuickCart = mysql_query($query_rsQuickCart, $store) or die(mysql_error());
    $row_rsQuickCart = mysql_fetch_assoc($rsQuickCart);
    $totalRows_rsQuickCart = mysql_num_rows($rsQuickCart);
    
    $colname_rsCartTotal = "-1";
    if (isset($_SESSION['sessionid'])) {
      $colname_rsCartTotal = $_SESSION['sessionid'];
    }
    mysql_select_db($database_store, $store);
    $query_rsCartTotal = sprintf("SELECT SUM(total_price) FROM store_cart WHERE session_id = %s", GetSQLValueString($colname_rsCartTotal, "text"));
    $rsCartTotal = mysql_query($query_rsCartTotal, $store) or die(mysql_error());
    $row_rsCartTotal = mysql_fetch_assoc($rsCartTotal);
    $totalRows_rsCartTotal = mysql_num_rows($rsCartTotal);
    
    ...
    
    ?>

    пришёл на работу.
    Дали до делать вебсайт
    увидел ЭТО....и обиделся на аФФтара О_о

    Senya, 11 Ноября 2009

    Комментарии (4)
  3. C# / Говнокод #2131

    +101.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    var r = from t in ds.ProductTags
    		where t.ProductTagID == tag
    			|| t.Parent.ProductTagID == tag
    			|| t.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.Parent.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.Parent.Parent.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.ProductTagID == tag
    		select t;

    Это мой код. Надоело писать рекурсивные СTE чтобы выбрать всех детишек. Спросил у кастомера можно ли ограничить вложенность. Он согласился ;).. На свою голову ;).

    Mike Chaliy, 11 Ноября 2009

    Комментарии (14)
  4. ActionScript / Говнокод #2130

    −90.1

    1. 1
    var data_xml: XML = <data>{ new XML('<!' + '[CDATA[' + remote_data + ']]' + '>') }</data>

    Примерно вот так в MXML предлагается запихивать данные внутрь CDATA. Новый объект XML чтобы обойти баг во флексе, а XSS подобное разбиение строк, чтобы Flex Builder не подумал, что ]]> закрывает CDATA вокруг Script

    sudden_def, 11 Ноября 2009

    Комментарии (7)
  5. Pascal / Говнокод #2129

    +97.2

    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
    {1}
    if ((a='AC')or(a='CA')or(a='BD')or(a='DB'))and((b='AC')or(b='CA')or(b='BD')or(b='DB'))then write('YES') else
    if ((a='AC')or(a='CA')or(a='BC')or(a='CB'))and((b='AC')or(b='CA')or(b='BC')or(b='CB'))then write('YES') else
    if ((a='BC')or(a='CB')or(a='BD')or(a='DB'))and((b='BC')or(b='CB')or(b='BD')or(b='DB'))then write('YES') else
    if ((a='AB')or(a='BA')or(a='BD')or(a='DB'))and((b='AB')or(b='BA')or(b='BD')or(b='DB'))then write('YES') else
    if ((a='AC')or(a='CA')or(a='AB')or(a='BA'))and((b='AC')or(b='CA')or(b='AB')or(b='BA'))then write('YES') else
    if ((a='AC')or(a='CA')or(a='AD')or(a='DA'))and((b='AC')or(b='CA')or(b='AD')or(b='DA'))then write('YES') else
    if ((a='AD')or(a='DA')or(a='BD')or(a='DB'))and((b='AD')or(b='DA')or(b='BD')or(b='DB'))then write('YES') else
    if ((a='AC')or(a='CA')or(a='CD')or(a='DC'))and((b='AC')or(b='CA')or(b='CD')or(b='DC'))then write('YES') else
    if ((a='DC')or(a='CD')or(a='BD')or(a='DB'))and((b='DC')or(b='CD')or(b='BD')or(b='DB'))then write('YES') else
    if ((a='BC')or(a='CB')or(a='CD')or(a='DC'))and((b='BC')or(b='CB')or(b='CD')or(b='DC'))then write('YES') else
    if ((a='AD')or(a='DA')or(a='CD')or(a='DC'))and((b='AD')or(b='DA')or(b='CD')or(b='DC'))then write('YES') else
    if ((a='AB')or(a='BA')or(a='AD')or(a='DA'))and((b='AB')or(b='BA')or(b='DA')or(b='AD'))then write('YES') else
    if ((a='AB')or(a='BA')or(a='BC')or(a='CB'))and((b='AB')or(b='BA')or(b='BC')or(b='CB'))then write('YES') else
    {2}
    if ((a='A1C1')or(a='C1A1')or(a='B1D1')or(a='D1B1'))and((b='A1C1')or(b='C1A1')or(b='B1D1')or(b='D1B1'))then write('YES') else
    if ((a='A1C1')or(a='C1A1')or(a='B1C1')or(a='C1B1'))and((b='A1C1')or(b='C1A1')or(b='B1C1')or(b='C1B1'))then write('YES') else
    if ((a='B1C1')or(a='C1B1')or(a='B1D1')or(a='D1B1'))and((b='B1C1')or(b='C1B1')or(b='B1D1')or(b='D1B1'))then write('YES') else
    if ((a='A1B1')or(a='B1A1')or(a='B1D1')or(a='D1B1'))and((b='A1B1')or(b='B1A1')or(b='B1D1')or(b='D1B1'))then write('YES') else
    if ((a='A1C1')or(a='C1A1')or(a='A1B1')or(a='B1A1'))and((b='A1C1')or(b='C1A1')or(b='A1B1')or(b='B1A1'))then write('YES') else
    if ((a='A1C1')or(a='C1A1')or(a='A1D1')or(a='D1A1'))and((b='A1C1')or(b='C1A1')or(b='A1D1')or(b='D1A1'))then write('YES') else
    if ((a='A1D1')or(a='D1A1')or(a='B1D1')or(a='D1B1'))and((b='A1D1')or(b='D1A1')or(b='B1D1')or(b='D1B1'))then write('YES') else
    if ((a='A1C1')or(a='C1A1')or(a='C1D1')or(a='D1C1'))and((b='A1C1')or(b='C1A1')or(b='C1D1')or(b='D1C1'))then write('YES') else
    if ((a='D1C1')or(a='C1D1')or(a='B1D1')or(a='D1B1'))and((b='D1C1')or(b='C1D1')or(b='B1D1')or(b='D1B1'))then write('YES') else
    if ((a='B1C1')or(a='C1B1')or(a='C1D1')or(a='D1C1'))and((b='B1C1')or(b='C1B1')or(b='C1D1')or(b='D1C1'))then write('YES') else
    if ((a='A1D1')or(a='D1A1')or(a='C1D1')or(a='D1C1'))and((b='A1D1')or(b='D1A1')or(b='C1D1')or(b='D1C1'))then write('YES') else
    if ((a='A1B1')or(a='B1A1')or(a='A1D1')or(a='D1A1'))and((b='A1B1')or(b='B1A1')or(b='D1A1')or(b='A1D1'))then write('YES') else
    if ((a='A1B1')or(a='B1A1')or(a='B1C1')or(a='C1B1'))and((b='A1B1')or(b='B1A1')or(b='B1C1')or(b='C1B1'))then write('YES') else
    
    //оставшуюся часть я опустил из-за ее невместимости в 4000 символов.
    writeln('NO');
    end.

    Этот говнокод (полностью, а не этот говнокусок) по идее должен выискивать пересечения отрезков куба. Мы с другом поспорили, что я смоу написать прогу только с ifами, и олимпиадный сайт accepted ее.Он принял.

    Shprotbl, 11 Ноября 2009

    Комментарии (10)
  6. Си / Говнокод #2128

    +139.3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (errno==EINTR) while (errno==EINTR)
         {
                fseek(fr,loffset,SEEK_SET);
                fgets(line_buffer,len,fr);
    }

    sacc - система биллинга для squid

    Одной проверки на ошибку - видимо, недостаточно

    fiss, 11 Ноября 2009

    Комментарии (13)
  7. C# / Говнокод #2127

    +131.2

    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
    public static DataTable DeserilazeDataTable(string schema, string data)
            {
                DataTable tbl = new DataTable();
                if (!string.IsNullOrEmpty(schema))
                    using (Stream stream = new MemoryStream())
                    {
                        byte[] bufer = GetBytes(schema);
    
                        stream.Write(bufer, 0, bufer.Length);
                        stream.Position = 0;
                        tbl.ReadXmlSchema(stream);
                    }
    
                if (!string.IsNullOrEmpty(data))
                    using (Stream stream = new MemoryStream())
                    {
                        byte[] bufer = GetBytes(data);
    
                        stream.Write(bufer, 0, bufer.Length);
                        stream.Position = 0;
                        tbl.ReadXml(stream);
                    }
    
                return tbl;
            }
    
     public static byte[] GetBytes(string str)
            {
                if (string.IsNullOrEmpty(str))
                    return new byte[0];
    
                char[] ch = str.ToCharArray();
                byte[] bufer = new byte[ch.Length];
                for (int i = 0; i < ch.Length; i++)
                    bufer[i] = (byte)ch[i];
    
                return bufer;
            }
    //также имеются методы для сериализации, работающие также
    public static string SerilazeDataTable(DataTable table)
    public static string SerilazeDataTableShame(DataTable table)
    public static string GetString(byte[] bufer)

    Вот такой десериализатор таблицы в Xml нашел в проэкте.

    sven47, 11 Ноября 2009

    Комментарии (3)
  8. Java / Говнокод #2125

    +74.6

    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
    Object[] obj = nci.getFromTNVEDALL(id);
    if (obj[0] != null && obj[1] != null && !obj[0].equals(new BigDecimal(0))) {
    	if (obj[2] != null && obj[3] != null && !obj[2].equals(new BigDecimal(0))) {
    		if (obj[4] != null && obj[6] != null && !obj[4].equals(new BigDecimal(0))) {
    			// Проверка1
    			Object[] resProverka = proverka1(obj, numGoods, numRow, paymentDate, dutyRow, АКЦИЗ);
    			str = (String) resProverka[0];
    			date = (Date) resProverka[1];
    		} else {
    			// Проверка2
    			Object[] resProverka = proverka2(obj, numGoods, numRow, paymentDate, dutyRow, АКЦИЗ);
    			str = (String) resProverka[0];
    			date = (Date) resProverka[1];
    		}
    	} else {
    		// Проверка3
    		Object[] resProverka = proverka3(obj, numGoods, numRow, paymentDate, dutyRow, АКЦИЗ);
    		str = (String) resProverka[0];
    		date = (Date) resProverka[1];
    	}
    	if (obj[8] != null) {
    		if (gtdFields.getPreferencii(numGoods) == null ||
    				!((String) obj[8]).toUpperCase().equals(gtdFields.getPreferencii(numGoods).substring(2, 3))) {
    			str =
    					"|Для товара №" + (numGoods + 1) + " при применении ставки акциза " + obj[0] +
    							nci.getEdIzm((String) obj[1]) +
    							" в третьей позиции гр.36 ГТД необходимо указать преференцию '" + obj[8] + "'\n";
    		}
    	}
    	gtdFields.setCurrencyUseDate(numGoods, date, numRow);
    }

    ctepx, 11 Ноября 2009

    Комментарии (2)
  9. Java / Говнокод #2124

    +86.5

    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
    /**
     * константы платежей
     *
     * @author eav
     */
    public interface PaymentsConstants {
    	// какие-то цифры %)
    	static final String _25 = "25";
    	static final String _21 = "21";
    	static final String _27 = "27";
    	static final String _26 = "26";
    	static final String _93 = "93";
    	static final String _78 = "78";
    	static final String _80 = "80";
    	static final String _98 = "98";
    	static final String _81 = "81";
    	static final String _13 = "13";
    	static final String _12 = "12";
    	static final String _95 = "95";
    	static final String _20 = "20";
    	static final String _23 = "23";
    	static final String _53 = "53";
    	static final String _112 = "112";
    
    	static final String _270900 = "270900";
    	static final String _2710 = "2710";
    	static final String _2711210000 = "2711210000";
    	static final String _4907001010 = "4907001010";
    	static final String _4820409000 = "4820409000";
    	static final String _4907009000 = "4907009000";
    
    	// страны
    	static final String TM = "TM";
    	static final String AM = "AM";
    	static final String TJ = "TJ";
    	static final String UZ = "UZ";
    	static final String KG = "KG";
    	static final String AZ = "AZ";
    	static final String GE = "GE";
    	static final String UA = "UA";
    	static final String MD = "MD";
    	static final String BY = "BY";
    	static final String KZ = "KZ";
    
    	static final String ВРЕМ = "Врем";
    	static final String КОМП = "Комп";
    	static final String ДЕМП = "Демп";
    	static final String АКЦИЗ = "Акциз";
    
    	static final String УН = "УН";
    	static final String ИП = "ИП";
    
    	// импорт/экспорт
    	static final String ЭК = "ЭК";
    	static final String ИМ = "ИМ";
    }

    Тихий ужас...

    ctepx, 11 Ноября 2009

    Комментарии (13)
  10. PHP / Говнокод #2123

    +164.6

    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
    function Parser($html,$safelevel=1,$censored=false,$typo=true,$crop=0)
    {
    /* v2
        # 17/10/01
        
        html        обезапасиваемая строка
        safelevel   указывает разрешенные теги:       0 = все разрешены
                                                      1 = B,I,U,FONT,P,DIV,CENTER,IMG,A,SPAN,TABLE,TD,TR,INPUT,FORM,TEXTAREA,SCRIPT
                                                      2 = B,I,U,FONT,P,DIV,CENTER,IMG,A,SPAN,TABLE,TD,TR
                                                      3 = B,I,U,FONT,P,DIV,CENTER,IMG,A,SPAN
                                                      4 = B,I,U,FONT,CENTER,IMG,A
                                                      5 = B,I,U,IMG,A
                                                      6 = B,I,U,IMG
                                                      7 = B,I,U,A
                                                      8 = IMG,A
                                                      9 = B,I,A
                                                     10 = I,A
                                                     11 = A
                                                     12 = никакие
                                               "STRING" = указать самому (в формате <a><b><c>)
        censored    пропускать-ли через цензор
        typo        пропускать-ли через сраный типограф
    */  
    
        # обезопасиваем
        switch ($safelevel)
        {
            case 0: $return =       $html; break;
            case 1: $return =       strip_tags($html,"<b><i><u><font><p><div><center><img><a><span><table><td><tr><input><form><textarea><script>"); break;
            case 2: $return =       strip_tags($html,"<b><i><u><font><p><div><center><img><a><span><table><td><tr>"); break;
            case 3: $return =       strip_tags($html,"<b><i><u><font><p><div><center><img><a><span>"); break;
            case 4: $return =       strip_tags($html,"<b><i><u><font><center><img><a>"); break;
            case 5: $return =       strip_tags($html,"<b><i><u><img><a>"); break;
            case 6: $return =       strip_tags($html,"<b><i><u><img>"); break;
            case 7: $return =       strip_tags($html,"<b><i><u><a>"); break;
            case 8: $return =       strip_tags($html,"<img><a>"); break;
            case 9: $return =       strip_tags($html,"<b><i><a>"); break;
            case 10: $return =      strip_tags($html,"<i><a>"); break;
            case 11: $return =      strip_tags($html,"<a>"); break;
            case 12: $return =      strip_tags($html); break;
            default: $return=addslashes($return); break;
        }
        
        
        
        # если censored=true, то цензорим все, сносим хуи и пёзды.
         # upd: к сожалению, цензор, спизженый где-то в сети, оказался корявым и мы временно будем читать мат.
        if ($censored==false)
        {
            $return=str_replace("!!!!!!!!!!","! я идиот, убейте меня кто нибудь !",$return);
            $return=str_replace("))))))))))","! я идиот, убейте меня кто нибудь !",$return);
        }
        
        # если typo=true то обрабатываем сраным типографом
        if ($typo==true)
        {
            $typog = new Typographus();
            $return = $typog->process($return);
        }
    
         if ($crop!=0)
         {
              $return = CropString($crop,$return);
         }
    
        return $return;
    }

    getrix, 11 Ноября 2009

    Комментарии (8)