Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Аналог действий preg_match_all


Автор: Serious2008 12.3.2012, 00:10
Вот такой текст

Код

Предлагаем доску обрезную для теста системы

ТОПовые страны по “зеленой” экономике


Код

  $text = mb_strtolower(strip_tags($text), 'UTF-8');  

  preg_match_all("/[а-яa-z0-9ё]{7,}+/s",$text,$word); //выбираем слова


Вот этой функцией превращает в

Array ( [0] => Array ( [0] => едлагаем [1] => езн� [2] => опов� [3] => зеленой [4] => кономике ) )



P.S. функция писана не мною и мне нужно или переделать или её исправить. 

Я написал вот такое решение этой функции.

Код

$text = mb_strtolower(strip_tags($text), 'UTF-8');  
  $a_invalidchars = array( ":", "/", "\\", "'", "\"", "-", "(", ")", "[", "]", "*", "!", "@", "#", ".", "%", 
"&nbsp", "?", "”", "“", "{", "}", ";", ",", "\$", "+", "\x96", "<", ">", "&" );
  $text = str_replace( $a_invalidchars, "", $text );
  $words = explode(" ", $text);
  foreach ($words as $value)
    {
    if (strlen($value) >=$lenkey*2)
            {
                $temp_word[] = $value;
                
            }
    }
    $word[] = $temp_word;


и оно выдало корректный результат. Вопрос какая из двух функций быстрей фактически? И как мне поступить из выгоды в производительности первую или вторую функцию?

Автор: ksnk 12.3.2012, 00:41
если добавить в первую регулярку пару модификаторов ui, то не нужно писать вторую конструкцию ;)

Что считать эффективностью? Скорость выполнения? Или дополнительную фильтрацию...

Автор: Serious2008 12.3.2012, 00:46
ksnk
скорость и парвильность, правильность первой устраивала людей. Поэтому скорость.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)