php汉字转拼音 php 汉字取首字母

本文介绍了一个使用PHP实现的类,该类能够将输入的汉字转换为拼音,并进一步提取拼音的首字母。通过调用外部API完成转换工作,并提供了具体的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php汉字转拼音 php 汉字取首字母
<?php

/**
 * Class ConvertToPingYin
 *
 * 请到对应的网站申请转换接口
 *
 * https://www.showapi.com/api/lookPoint/99
 */
class ConvertToPingYin
{

    public function cpingyin($str)
    {
        //md5签名方式--非简单签名
        header("Content-Type:text/html;charset=UTF-8");
        date_default_timezone_set("PRC");
        $showapi_appid = '9918125';  //替换此值,在官网的"我的应用"中找到相关值   这个不能用自已去申请99
        $showapi_secret = '99674547fde6b6497d94cbeb2e4200ebe2';  //替换此值,在官网的"我的应用"中找到相关值 这个不能用自已去申请99
        $paramArr = array(
            'showapi_appid' => $showapi_appid,
            'content' => $str,
            'showapi_timestamp' => date("YmdHis")
        );

        $param = $this->createParam($paramArr, $showapi_secret);
        $url = 'http://route.showapi.com/99-38?' . $param;
        //  echo $url;
        $result = file_get_contents($url);
        $result = json_decode($result, true);
        if (!isset($pinyinarr['showapi_res_body']['data'])) {
            sleep(1); //循环时怕被封
        }
        return $result;


    }

    public function createParam($paramArr, $showapi_secret)
    {
        $paraStr = "";
        $signStr = "";
        ksort($paramArr);
        foreach ($paramArr as $key => $val) {
            if ($key != '' && $val != '') {
                $signStr .= $key . $val;
                $paraStr .= $key . '=' . urlencode($val) . '&';
            }
        }
        $signStr .= $showapi_secret;//排序好的参数加上secret,进行md5
        $sign = strtolower(md5($signStr));
        $paraStr .= 'showapi_sign=' . $sign;//md5后的值作为参数,便于服务器的效验
        // echo "排序好的参数:" . $paraStr . "<br>";
        return $paraStr;
    }
}

$pingYin = new ConvertToPingYin();
$pinyinarr = $pingYin->cpingyin('中文');

if (isset($pinyinarr['showapi_res_body']['data'])) {
    $pinyin = $pinyinarr['showapi_res_body']['data']; //取得拼音
    $initials = strtoupper(substr($pinyin, 0, 1));  //取得首字母
}

var_dump($pinyinarr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值