GithubHelp home page GithubHelp logo

yurunsoft / chineseutil Goto Github PK

View Code? Open in Web Editor NEW
494.0 15.0 67.0 4.77 MB

PHP 中文工具包,支持汉字转拼音、拼音分词、简繁互转、数字、金额大写;QQ群:17916227

Home Page: https://gitee.com/yurunsoft/ChineseUtil

License: MIT License

PHP 93.92% Shell 1.22% PowerShell 4.18% Dockerfile 0.65% C 0.02%
php chinese pinyin pinyin-analysis chinese-traditional chinese-simplified ffi

chineseutil's People

Contributors

wilbur-yu avatar yurunsoft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chineseutil's Issues

src/Chinese/Driver\Pinyin/Memory.php

src/Chinese/Driver/Pinyin/Memory.php line 229:

'pinyin'            => [$word],
'pinyinSound'       => [$word],
'pinyinSound'       => [$word],         //Redundant code
'pinyinSoundNumber' => [$word],

php8版本出现类型溢出错误,建议修复兼容

yurunsoft\chinese-util\src\Chinese\Driver\Money\Memory.php 行237
$unitIndex = ($length - 1) / 4 >> 0;
环境 php 8.2.5,高版本对数据类型严格检查,数字为222三位时,错误提示 Implicit conversion from float 0.5 to int loses precision
建议修复兼容

[] operator not supported for strings

如题,在PHP7.2.12中报告致命的错误。

文件:Memory.php
行数:84
位置:$result['pinyin'][$j][] = $pinyin;

这是因为同一变量前后赋值的类型不一致导致的致命错误,emmm……

laravel 5.6中使用SwooleFFI偶尔会报错

位置 93 行
/www/blog/vendor/yurunsoft/chinese-util/src/Chinese/FFIDriver.php
}
else
{
$library = "libchinese_util-php{$phpVersion}.so";
}
}
$library = $clibPath . '/' . $library;
}
$this->ffi = $ffi = PHPFFI::cdef(file_get_contents($clibPath . '/include.h'), $library);
$ffi->init_chinese_util();
$dataPath = \dirname(DIR, 2) . '/data';
if (!$characterDataPath)
{
$characterDataPath = $dataPath . '/charsData.json';
}
if (!$pinyinDataPath)
{
$pinyinDataPath = $dataPath . '/pinyinData.json';
}
这里 -> init_chinese_dict($characterDataPath, $pinyinDataPath);
}

报错信息
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Call to undefined function Yurun\Util\Chinese\init_chinese_dict()

环境
docker
php-fpm 7.4.1 openresty 1.17

这个问题刷新几次页面就好了,时而好时而坏

数字转中文大写存在bug

` public function toChinese($number, $options = [])
{
if (!static::verifyNumber($number))
{
throw new \InvalidArgumentException(sprintf('%s is not a valied number', $number));
}

    list($integer, $decimal) = explode('.', $number . '.');

    if ($integer < 0)
    {
        $pom = static::$numberMap['-'];
        $integer = abs($integer);
    }
    else
    {
        $pom = '';
    }

    if ($integer > 0)
    {
        return $pom . static::parseInteger($integer, $options) . static::parseDecimal($decimal, $options);
    }
    elseif (!$decimal)
    {
        return static::$numberMap[0] . static::$moneyUnitMap[0][0];
    }
    else
    {
        return $pom . static::parseDecimal($decimal, $options);
    }
}`

判断正负的时候应该使用number来判断。现在 -0.09这种都转为零玖分,应该是负零玖分

容易出现php内存溢出:使用中文转拼音时,中文越长越容易复现这个问题

$content = 'PHP的类名,函数,方法名是不区分大小写的,也就是说无论你怎么定义函数名,实际上在引擎层面查找的时候都是会统一转换成小写形式来做的。 也就是说strtolower的应用是非常普遍的';
// 设为性能模式
Chinese::setMode('SQLite');
$res = Chinese::toPinyin($content, Pinyin::CONVERT_MODE_PINYIN, '');
return $res['pinyin'][0] ?? '';

image
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.