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

    +164

    1. 1
    2. 2
    3. 3
    function isUTF8 ($str) {
        return $utf8 = (preg_match("/^([\x09\x0A\x0D\x20-\x7E]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})*$/", $str)) ? true : false;
    }

    говно или нет?

    Запостил: stasoft, 08 Января 2011

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

    • не ужели еще остались браузеры которые неправильно кодировки обрабатывают??

      а для всех остальных случаев, нужно либо сохранять кодировку вместе с данными или стандартизироваться на одной кодировке на всю систему.
      Ответить
    • А разве если бы сделали
      return preg_match(blablabla);

      оно вернуло бы что либо кроме булевого типа? О_о
      Ответить
      • Int вернуло бы.
        Лучше бы сделать как в #5188, в return, если уж хочется соблюдать типы.
        Ответить
        • Если он потом проверяет
          if(isUTF8($string)){}
          То какая разница? Если функция вернет значение не равно 0, и не меньше нуля. значение все равно будет true; разве не так?
          Ответить
          • >если уж хочется соблюдать типы
            Если не хочется, то, действительно, никакой разницы.
            Ответить

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