Beispiel #1
0
#!/usr/bin/env php
<?php 
set_include_path(__DIR__ . '/../src/' . PATH_SEPARATOR . get_include_path());
require 'phpMorphy.php';
$user_dict_xml = PHPMORPHY_DIR . '/../bin/user_dict.xml';
$outXmlFilePath = PHPMORPHY_DIR . '/../bin/out.xml';
$morphy_dict_dir = PHPMORPHY_DIR . '/../dicts/utf-8';
$morphy_dict_lang = 'ru_RU';
$verbose = true;
/**
 *
 * @param string $dir
 * @param string $lang
 * @return phpMorphy_MorphyInterface
 */
function createMorphy($dir, $lang)
{
    $opts = array('storage' => PHPMORPHY_STORAGE_MEM, 'predict_by_suffix' => true, 'predict_by_db' => true);
    return new phpMorphy($dir, $lang, $opts);
}
$morphy = createMorphy($morphy_dict_dir, $morphy_dict_lang);
$encoding_converter = new phpMorphy_UserDict_EncodingConverter($morphy->getEncoding(), $morphy->isInUpperCase() ? MB_CASE_UPPER : MB_CASE_LOWER, 'utf-8', MB_CASE_UPPER);
//$errors_handler = new phpMorphy_UserDict_Log_ErrorsHandlerException();
$errors_handler = new phpMorphy_UserDict_Log_ErrorsHandlerPass();
$observer = new phpMorphy_UserDict_Log_CLI($verbose, $errors_handler, $encoding_converter);
$b = microtime(true);
if (1) {
    phpMorphy_UserDict_XmlDiff_Generator::convertFromXmlToXml($user_dict_xml, $outXmlFilePath, $morphy, $observer, $encoding_converter);
}
$e = microtime(true);
printf("Time taken: %0.2f\n", $e - $b);
 /**
  * @param string $inputXmlFilePath
  * @param string $outputXmlFilePath
  * @param phpMorphy_MorphyInterface $morphy
  * @param phpMorphy_UserDict_LogInterface $observer
  * @param phpMorphy_UserDict_EncodingConverter $encodingConverter
  */
 static function convertFromXmlToXml($inputXmlFilePath, $outputXmlFilePath, phpMorphy_MorphyInterface $morphy, phpMorphy_UserDict_LogInterface $observer, phpMorphy_UserDict_EncodingConverter $encodingConverter)
 {
     $that = new phpMorphy_UserDict_XmlDiff_Generator($morphy, $observer, $encodingConverter);
     $that->loadFromXml($inputXmlFilePath);
     $that->save(new phpMorphy_Dict_Writer_Xml($outputXmlFilePath));
 }