Посчитать кол-во символов в строке

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 22 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Здравствуйте.
    Подскажите пожалуйста, как посчитать количество русских символов в строке?
     
  2. SergXP

    SergXP Постоялец

    Регистр.:
    8 мар 2008
    Сообщения:
    66
    Симпатии:
    11
    можно так:

    PHP:
    $text "ай13sd6rrн"//текст

    $pattern '/[а-яА-Я]/';

    if (
    preg_match_all($pattern,$text,$matches)) {
        
    print_r($matches[0]);
        echo 
    "Кол-во русских символов: ".sizeof($matches[0]);
    }
     
    LEXAlForpostl нравится это.
  3. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Подскажите регулярку, которая бы считывала текст
    <p не важно атрибуты или нет их>тут сам текст </p>
     
  4. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    для анализа текста лучше вырезать его
    PHP:
    $pattern '/<p[^>]+>([^<>]+)<\/p>/si';
    if (
    preg_match($pattern,$text,$out)) {
        
    $text $out[1];
        
    $pattern '/[а-яА-Я]/';
        if (
    preg_match_all($pattern,$text,$matches)) {
            
    print_r($matches[0]);
            echo 
    "Кол-во русских символов: ".sizeof($matches[0]);
        }
    }  
     
  5. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    а так не проще?..
    Код:
    $cnt = strlen( preg_replace( '/[^а-я]/i', '', $string ) );
    
    strip_tags не подойдет?..
     
  6. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Не спарсивает, если попадается просто тег "р" без атрибутов.
    <p> тут текст </p>
     
  7. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    тогда
    PHP:
    <p[^>]+>
    замените на
    PHP:
    <p[^>]*>
    но вначале попробуй, как предложено выше, использовать для исходного текста функцию strip_tags
     
  8. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Ещё, не спарсивает те абзацы, в которых есть другие тэги.
    например, <br> и др.
     
  9. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    используйте функцию strip_tags
     
  10. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Мне надо поработать именно с тем текстом, который заключен именно в тегах <p>
     
Статус темы:
Закрыта.