当前位置: 首页>>代码示例>>PHP>>正文


PHP UTF8::diactrical_remove方法代码示例

本文整理汇总了PHP中UTF8::diactrical_remove方法的典型用法代码示例。如果您正苦于以下问题:PHP UTF8::diactrical_remove方法的具体用法?PHP UTF8::diactrical_remove怎么用?PHP UTF8::diactrical_remove使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在UTF8的用法示例。


在下文中一共展示了UTF8::diactrical_remove方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: parse

 /**
  * Главный метод
  *
  * @param   scalar|null $s      Текст в кодировке UTF-8.
  * @param   array|null  $words  Ассоц. массив со словами, которые были исправлены:
  *                              в ключах оригиналы, в значениях исправленные слова.
  * @return  string|bool         returns FALSE if error occured
  */
 public function parse($s, array &$words = null)
 {
     if (!ReflectionTypeHint::isValid()) {
         return false;
     }
     if (!is_string($s)) {
         return $s;
     }
     #пропускаем текст, в котором нет букв [ЕеЁё]
     if ($this->_is_skip($s)) {
         return $s;
     }
     #speed improve
     if (!(is_array($this->dic) || is_resource($this->db))) {
         if (function_exists('dba_open') && array_key_exists('cdb', dba_handlers(true))) {
             $this->db = dba_open($this->_filename('cdb'), 'r', 'cdb');
             if ($this->db === false) {
                 return $s;
             }
         } elseif ($this->is_work_for_cdb_only) {
             return $s;
         } else {
             include $this->_filename('php');
         }
     }
     #вырезаем и заменяем некоторые символы
     $additional_chars = array("­");
     $s = UTF8::diactrical_remove($s, $additional_chars, $is_can_restored = true, $restore_table);
     $this->words = array();
     #заменяем слова из текста, минимальная длина слова -- 3 буквы, меньше нельзя
     $s = preg_replace_callback('/ (' . $this->ru . ')               #1 первая буква
                                   ((?:' . $this->ru_lc . '){2,}+)   #2 остальные буквы
                                   (?!
                                      \\.(?>[\\x00-\\x20]+|\\xc2\\xa0)+  #\\xc2\\xa0 =  
                                        (?>
                                            (?:' . $this->ru_lc . ')
                                          | (?:' . $this->ru_uc . '){2}   #пример: долл. США
                                          | [\\x21-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7e]
                                        )
                                    | \\.[\\x21-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7e]
                                   )
                                 /sxSX', array(&$this, '_word'), $s);
     $s = UTF8::diactrical_restore($s, $restore_table);
     $words = $this->words;
     return $s;
 }
开发者ID:rin-nas,项目名称:php-yoficator,代码行数:54,代码来源:Yoficator.php

示例2: parse


//.........这里部分代码省略.........
                      [бb6]_?[лl]_?(?:я|ya)(?: _         #бля
                                             | _?[тдtd]  #блять, бляди
                                           )', '(?<=\\PL) [пp]_?[иieе]_?[дdg]_?[eеaаoо]_?[rpр]', '(?<=\\PL) \\w*[пp]_?[иieе]_?[дdg]_?[eеaаoо]_?[rpр]\\b
				    #исключения:
                      (?<!импидор)  #Импидор
				', '(?<=\\PL) [дв]_?[еэ]_?[бb]_?[иi]_?[лl]\\b', '(?<=\\PL) [yу][р]_?[оo]_?[д]_?(?![л])', '(?<=\\PL) [мm]_?[уy]_?[дdg]_?[аa]  #мудак, мудачок
                      #исключения:
                      (?<!_myda(?=s_))  #Chelonia mydas -- морская зеленая (суповая) черепаха
            	', '(?<=\\PL) [zж]_?h?_?[оo]_?[pп]_?[aаyуыiеeoо]', '(?<=\\PL) [мm]_?[аa]_?[нnh]_?[дdg]_?[aаyуыiеeoо]_  #манд[ауыео]
                      #исключения:
                      (?<! манда(?=[лн]|рин)
                         | manda(?=[ln]|rin)
                      )
                      ', '(?<=\\PL) [гg]_?[оo]_?[вvb]_?[нnh]_?[оoаaяеeyу]', '(?<=\\PL) f_?u_?[cс]_?k', '[^р]_?[scс]_?[yуu]_?[kк]_?[aаiи]', '[^р]_?[scс]_?[yуu]_?[4ч]_?[кk]', '\\bл_?[оo]_?[хx]\\b', '(?<=\\PL) [шщ]_?[лl]_?[ю]_?[хш]');
            $trans = array('_' => '\\x20', '\\pL' => '[^\\x20\\d]', '\\PL' => '[\\x20\\d]', '[:vowel:]' => '[аеиоуыэюяёaeioyu]', '[:consonant:]' => '[^аеиоуыэюяёaeioyu\\x20\\d]');
            $re_badwords = str_replace('%RE_PRETEXT%', '(?:' . implode('|', $pretext) . ')', '~' . implode('|', $badwords) . '~sxuSX');
            $re_badwords = strtr($re_badwords, $trans);
        }
        $s = UTF8::convert_from($s, $charset);
        $replace = UTF8::convert_from($replace, $charset);
        $ss = $s;
        #saves original string
        if ($is_html) {
            #скрипты не вырезаем, т.к. м.б. обходной маневр на с кодом на javascript:
            #<script>document.write('сло'+'во')</script>
            #хотя давать пользователю возможность использовать код на javascript нехорошо
            $s = is_callable(array('HTML', 'strip_tags')) ? HTML::strip_tags($s, null, true, array('comment', 'style', 'map', 'frameset', 'object', 'applet')) : strip_tags($s);
            #заменяем html-сущности в "чистый" UTF-8
            $s = UTF8::html_entity_decode($s, $is_htmlspecialchars = true);
        }
        if (strtoupper(substr($charset, 0, 3)) === 'UTF') {
            #remove combining diactrical marks
            $additional_chars = array("­");
            $s = UTF8::diactrical_remove($s, $additional_chars);
        }
        #ВотБ/\яПидорыОхуелиБлятьНахуйПохуйПи3децПолный
        if (version_compare(PHP_VERSION, '5.2.0', '>=')) {
            $s = preg_replace('~     [\\p{Lu}3] (?>\\p{Ll}+|/\\\\|[@36]+)++   #Вот
								 (?= [\\p{Lu}3] (?:\\p{Ll} |/\\\\|[@36] ) )   #Бля
							   ~sxuSX', '$0 ', $s);
        }
        $s = UTF8::lowercase($s);
        #получаем в массив только буквы и цифры
        #"с_л@о#во,с\xc2\xa7лово.Слово" -> "с л о во с лово слово слово слово слово"
        preg_match_all('~(?> \\xd0[\\xb0-\\xbf]|\\xd1[\\x80-\\x8f\\x91]  #[а-я]
						  |  /\\\\     #л
						  |  @         #а
						  |  [a-z\\d]+
						  )+
						~sxSX', $s, $m);
        $s = ' ' . implode(' ', $m[0]) . ' ';
        $trans = array('/\\' => 'л', '@' => 'а');
        $s = strtr($s, $trans);
        #цифровые подделки под буквы
        $trans = array('~ [3з]++ [3з\\x20]*+ ~sxuSX' => 'з', '~ [6б]++ [6б\\x20]*+ ~sxuSX' => 'б');
        $s = preg_replace(array_keys($trans), array_values($trans), $s);
        #убираем все повторяющиеся символы, ловим обман типа "х-у-у-й"
        #"сллоооовоо   слово  х у у й" --> "слово слово х у й"
        $s = preg_replace('/(  [\\xd0\\xd1][\\x80-\\xbf] \\x20?  #optimized [а-я]
                             | [a-z\\d] \\x20?
                             ) \\1+
                           /sxSX', '$1', $s);
        //echo $s
        if ($replace === null || version_compare(PHP_VERSION, '5.2.0', '<')) {
            $result = preg_match($re_badwords, $s, $m, PREG_OFFSET_CAPTURE);
            if (function_exists('preg_last_error') && preg_last_error() !== PREG_NO_ERROR) {
开发者ID:pavlog,项目名称:php-censure,代码行数:67,代码来源:Censure.php

示例3: parse

 /**
  * Исправляет клавиатурные опечатки в тексте.
  * 
  * @param   scalar|null   $s       Текст в кодировке UTF-8.
  * @param   int           $mode    Константы self::SIMILAR_CHARS и/или self::KEYBOARD_LAYOUT,
  *                                 (их можно комбинировать). Описание констант см. выше.
  *                                 При использовании self::KEYBOARD_LAYOUT время работы увеличивается примерно в 10 раз.
  * @param   array         &$words  Ассоц. массив со словами, которые были исправлены:
  *                                 в ключах оригиналы, в значениях исправленные слова.
  * @return  string|bool            Returns FALSE if error occured
  */
 public function parse($s, $mode = self::SIMILAR_CHARS, array &$words = null)
 {
     if (!ReflectionTypeHint::isValid()) {
         return false;
     }
     if (!is_string($s)) {
         return $s;
     }
     if ($mode < self::SIMILAR_CHARS || $mode > (self::SIMILAR_CHARS | self::KEYBOARD_LAYOUT | self::ADD_FIX)) {
         trigger_error('Unknown mode', E_USER_WARNING);
         return false;
     }
     $this->mode = $mode;
     #вырезаем и заменяем некоторые символы
     $additional_chars = array("­");
     #http://ru.wikipedia.org/wiki/Диакритические_знаки
     $s = UTF8::diactrical_remove($s, $additional_chars, $is_can_restored = true, $restore_table);
     $this->words = array();
     $s = $this->_parse1($s);
     $s = $this->_parse2($s);
     $s = UTF8::diactrical_restore($s, $restore_table);
     $words = $this->words;
     return $s;
 }
开发者ID:rin-nas,项目名称:php-lang-correct,代码行数:35,代码来源:LangCorrect.php

示例4: normalize

 /**
  * Нормализация html-текста
  *
  * @param   string  $s
  * @return  string
  */
 public function normalize($s)
 {
     #1. вырезаем html-тэги и форматируем текст как text/plain
     $s = HTML::strip_tags($s, null, true, array('noindex', 'script', 'noscript', 'style', 'map', 'iframe', 'frameset', 'object', 'applet', 'comment', 'button', 'textarea', 'select'));
     #2. замена всех html сущностей (в т.ч. &lt; &gt; &amp; &quot;) в UTF-8
     $s = HTML::entity_decode($s, $is_htmlspecialchars = true);
     #3. вырезаем и заменяем некоторые символы
     $trans = array("­" => '', "\t" => ' ', "\f" => "\r\n\r\n");
     $s = strtr($s, $trans);
     $s = UTF8::diactrical_remove($s);
     #remove combining diactrical marks
     #4. заменяем параграфы на перенос строки, отступ слева ("красная" строка) поддерживается
     return preg_replace('~(\\r\\n|[\\r\\n])(?:\\x20|\\1)+~sSX', "\r\r", $s);
 }
开发者ID:rin-nas,项目名称:php-text-words-parser,代码行数:20,代码来源:WordsParser.php


注:本文中的UTF8::diactrical_remove方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。