За последние 24 часа нас посетили 31011 программистов и 1428 роботов. Сейчас ищут 808 программистов ...

ограничение длины букв в словах

Тема в разделе "PHP для новичков", создана пользователем engine.energy, 12 июл 2015.

  1. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    Например

    Я пишу "Привет как дела!" то каждый слова не превышает до 20 букв то отправляет.

    а если "олололололололололололололо привет!" то оказал что слова он превышает 20 букв и больше то не отправлять.

    Как сделать не нашел такой функции =)
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    denis01, нет! Это 1 текст который входит и пробел и слова. а мне надо проверять в тексте все слов длины...
     
  4. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    по позициям пробела в тексте ищи.
    если пробел стоит на 5 позиции, то слово из 5 букв (ещё 0-ая позиция вроде есть).
     
  5. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    Приведу пример кода а проше нету?
    Чтобы вы поняли!
    Код (PHP):
    1. function isStopText($text = false, $max_str = 20)
    2. {
    3.     if(!$text) return true;
    4.     $array_str = explode(" ", $text);
    5.     
    6.     foreach($array_str AS $str)
    7.     {
    8.         if(strlen($str) > $max_str) return true;
    9.     }
    10.     
    11.     return false;
    12. }
    13.  
    14. var_dump(isStopText("кусок1 кусок2 кусок3 кусок4 кусок5 кусок6", 5));
    Добавлено спустя 1 минуту 36 секунд:
    Если вернет false значит слова в порядке! А если вернет true то слова превышает больше чем требует максимальный!
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Тут толкают чтобы ты сам нашёл решение
     
  7. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    denis01, а проше нету его? чем 8 строчный код =)

    Добавлено спустя 15 секунд:
    Мой цель это уменшить код и оптимизировать =)
     
  8. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Код (PHP):
    1. $text = 'ололололоQQолЁлолKлололололо привет';
    2. $pattern = '/[a-zа-яё]{20,}/iu';
    3. echo (preg_match($pattern, $text) == 1) ? 'too long word:(' : 'OK';
    4.  
    Попробовать можно через https://php.net/manual/ru/function.str-word-count.php
     
  9. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    mb_strlen($str, 'UTF-8') так лучше а то header и meta установлен UTF-8 а считает как 10 букв который слова "кусок1"

    Добавлено спустя 5 минут 17 секунд:
    smitt спс! Но если максимальный разрешеный 6 букв то в патерн считает это не максимальный то есть в патерн 7 а в слова до 6 могут быть!

    А так свой код норм в ней будет проверка мата =)

    Добавлено спустя 1 минуту 45 секунд:
    Тему можно # спасибо за помоши!
     
  10. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    strlen() не катит используй iconv_strlen(), впрочем, я в другой теме уже ответил) и почему две темы то?)