php 转换带声调的字幕,PHP 汉字、拼音、unicode、声母、韵母互相转换

汉字

"pinyin"=> 拼音

"pinyin_s"=> 声母

"pinyin_y"=> 韵母

"type"=> 声调(1,2,3,4)

"unicode"=> 汉字unicode

* );

*/

define('IM_FEIYAN', true);

include_once 'config.php';

$data['words'] = null;

$data_root = &$data['words'];

$word = strtolower(urldecode(Filter::http_get("word")));

if( empty($word) ){

$data_root['result_code'] = 0;

$data_root['desc'] = "Parameter Word Can't be Empty";

} else {

$page = Filter::http_get("page");

$page = !empty($page) && intval($page)>=1 ? intval($page) : 1;

$size = Filter::http_get("size");

$size = !empty($size) && intval($size)>=1 ? intval($size) : 10;

$set = ( $page-1 )*$size;

//fuzzy:模糊查询accurate:精确查询

$act = Filter::http_get("act");

$act = in_array($act,array("fuzzy","accurate")) ? $act : "fuzzy";

if( $act == "fuzzy" ) {

$sql = "SELECT COUNT(id) FROM words WHERE search_index LIKE '%{$word}%'";

$total = $db->getone($sql);

$pages = $total%$size==0 ? intval($total/$size) : intval($total/$size)+1;

$sql = "SELECT * FROM words WHERE search_index LIKE '%{$word}%' LIMIT $set,$size";

} elseif ( $act == "accurate" ) {

$column = preg_match("/^[a-z]+$/",$word) ? "pinyin"

: ( preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$word) ? "word" : "unicode");

$sql = "SELECT COUNT(id) FROM words WHERE $column LIKE '%{$word}%'";

$total = $db->getone($sql);

$pages = $total%$size==0 ? intval($total/$size) : intval($total/$size)+1;

$sql = "SELECT * FROM words WHERE $column LIKE '%{$word}%' LIMIT $set,$size";

}

$res = $db->getall($sql);

if( empty($res) ){

$data_root['result_code'] = 1;

$data_root['desc'] = 'Data is Empty';

} else {

foreach ( $res as &$row )

{

$data_root["word"][] = array(

"word"=> $row["word"],

"pinyin"=> $row["pinyin"],

"pinyin_s"=> $row["pinyin_s"],

"pinyin_y"=> $row["pinyin_y"],

"type"=> $row["type"],

"unicode"=> "\"".$row["unicode"]."\""

);

}

}

}

//导出XML或者json

output( $data );

?>

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值