本文整理汇总了PHP中UTF8::diactrical_restore方法的典型用法代码示例。如果您正苦于以下问题:PHP UTF8::diactrical_restore方法的具体用法?PHP UTF8::diactrical_restore怎么用?PHP UTF8::diactrical_restore使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UTF8
的用法示例。
在下文中一共展示了UTF8::diactrical_restore方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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;
}
示例2: 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;
}