HEX
Server: nginx/1.22.1
System: Linux VM-16-9-centos 3.10.0-1160.99.1.el7.x86_64 #1 SMP Wed Sep 13 14:19:20 UTC 2023 x86_64
User: www (1001)
PHP: 7.3.31
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/oa.sanjiangapp.com/lib/pinyin/pinyin.class.php
<?php

/*
 * This file is part of the overtrue/pinyin.
 *
 * (c) 2016 overtrue <i@overtrue.me>
 */
class pinyin
{
    /**
     * Constructor.
     *
     */
    public function __construct()
    {
        $this->segments = array();
        $segment = dirname(__FILE__) . '/data/words';
        if(file_exists($segment)) $this->segments = include $segment;
    }

    /**
     * Convert string to pinyin.
     *
     * @param string $string
     * @param string $option
     *
     * @return array
     */
    public function convert($string)
    {
        $pinyin = $this->romanize($string);
        $split  = array_filter(preg_split('/[^a-z]+/iu', $pinyin));
        return array_values($split);
    }


    /**
     * Preprocess.
     *
     * @param string $string
     *
     * @return string
     */
    public function prepare($string)
    {
        if(version_compare(PHP_VERSION, '7.2.0') >= 0)
        {
            $string = preg_replace_callback('/[a-z0-9_-]+/i', function($matches)
            {
                return "\t" . $matches[0];
            }, $string);
        }
        else
        {
            $string = preg_replace_callback('/[a-z0-9_-]+/i', create_function('$matches', 'return "\t" . $matches[0];'), $string);
        }
        return preg_replace("/[^\p{Han}\p{P}\p{Z}\p{M}\p{N}\p{L}\t]/u", '', $string);
    }

    /**
     * Convert Chinese to pinyin.
     *
     * @param string $string
     * @param bool   $isName
     *
     * @return string
     */
    public function romanize($string)
    {
        $string = $this->prepare($string);
        $string = strtr($string, $this->segments);
        return $string;
    }
}