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

    +167

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /**
    	* Получение длины строки для utf-8
    	*/
    	public static function strlen($str) {
        	$rus=array('й','ц','у','к','е','н','г','ш','щ','з','х','ъ','ф','ы','в','а','п','р','о','л','д','ж','э','я','ч','с','м','и','т','ь','б','ю',
                   'Й','Ц','У','К','Е','Н','Г','Ш','Щ','З','Х','Ъ','Ф','Ы','В','А','П','Р','О','Л','Д','Ж','Э','Я','Ч','С','М','И','Т','Ь','Б','Ю');
        	return strlen(str_replace($rus,'0',$str));
    	}

    зачем нам всякие (iconv|mb)_strlen ?
    хотя при отсутствии этих библиотек метод интересный

    Запостил: Morgan, 13 Сентября 2010

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

    • в дополнение
      /**
      	* substr для utf-8
      	* @param string $string, int $start [int $lenght]
      	*/
      	public static function substr($string, $start, $lenght = NULL) {
      		return utext(substr(wtext($string), $start, $lenght));
      	}

      utext - utf-8 -> cp1251, wtext - наоборот
      Ответить
      • > lenght
        pbuilc satitc fnutcion stubsr($srtnig, $sratr, $lenght = NUUL) {
          reutrn utext(stubsr(wtext($srtnig), $sratr, $lenght));
        }
        Ответить
        • Анлийгские уёчные дкозали, что чеолвек восрпиинамет тескт на уорнве пдосонзания и дотсатончо, чотбы перавя и полсендяя бкува сотляи на сових метсах, тодга члевоек сомжет порчаитть тсект.
          Ответить
          • Это нвоая тнхеолоигя офбуксаици, нарпалвенная пртоив копмиляотров, а не поритв лдюей :)

            Подсветка NUUL отдельно порадовала.
            Ответить
            • >>Это нвоая тнхеолоигя офбуксаици, нарпалвенная пртоив копмиляотров, а не поритв лдюей :)
              cpolimer-ccathpa?
              Ответить
              • Ну, не совсем captcha :) Скажем так, защита кода от тупого копипаста тупыми ламерами. Как бы смысл функции понятен, но допиливать придётся.
                Ответить
                • Хотя, наверно, и это можно считать капчей...
                  Ответить
          • уёчные
            Мне вот почему-то в этом слове что угодно читается, только не "ученые" =)
            уёчные они такие уёчные)))
            Ответить
          • на самом деле это полнейший пиздеж, попробуйте например на уровне подсознания разобрать фразу:
            "хиньлидолок зеавижаромат пткудоры"
            Недостаточно ограничиваться крайними буквами, надо чтобы максимальное смещение буквы от ее родного места не превышало определенного N.
            Ответить
            • >>на самом деле это полнейший пиздеж
              >>надо чтобы максимальное смещение буквы от ее родного места не превышало определенного N.

              вы absolut-но правы
              мне также подобное всегда казалось сомнительным
              ибо не в состоянии голова человека сходу обработать вариатов порядка 10! и больше, даже несмотря на нехилые способности к анализу всегда есть предел
              Ответить
              • на3.14159265санное вами тоже достаточно убедительно :)
                Ответить
                • >>на3.14159265санное вами тоже достаточно убедительно
                  в теории информации есть понятие минимальное кодовое расстояние, которое обеспечивает гарантированное восстановление.
                  на мой взгяд "максимальное смещение" - похожее понятие. несмотря на то что вопрос весьма сложен - это очень удачное упрощение. т.к. сложность распознавания растет даже чуть быстрее чем экcпоненциально

                  >>>оставшиеся прочитайте наоборот.
                  я почти сразу догадался)). вернее я начал читать их наоборот и все понял - но это уже другой метод распознавания.
                  Ответить
              • да лдано све перкрасно рбаотате!
                Ответить
            • > "хиньлидолок зеавижаромат пткудоры"
              Казахстаном пахнет
              Ответить
              • Что и требовалось доказать.
                Всё гораздо проще : первые и последние буквы не трогайте, а оставшиеся прочитайте наоборот.
                Ответить
                • Спасибо, Кэп! А то я подсознательно прочитал в этой фразе "ты должен всех убить"
                  Ответить
                  • Об исполнении доложить :)
                    Ответить
                  • >>>"ты должен всех убить"
                    >>>хиндер хох, ебаныврот, пидары

                    вот, вот что и требовалось доказать, когда слова недлинные все видят одно и тоже - с увеличением длины слов - количество вариантов возрастает и каждому чудятся те тараканы, что в голове.
                    Ответить
            • >>"хиньлидолок зеавижаромат пткудоры"
              хиндер хох, ебаныврот, пидары

              я так прочитал
              Ответить
      • Отлично!
        Ответить
    • Эксплоит: вводим букву «Ё».
      Ответить
    • ЯЖЕРТЫ!
      Ответить

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