feat: 项目基础框架+配置+Kernel
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* 汉字转拼音类
|
||||
* @Author : Kin
|
||||
* @Date : 2014-03-16
|
||||
* @Email : Mr.kin@foxmail.com
|
||||
*
|
||||
*/
|
||||
|
||||
class ChinesePinyin{
|
||||
|
||||
//utf-8中国汉字集合
|
||||
private $ChineseCharacters;
|
||||
//编码
|
||||
private $charset = 'utf-8';
|
||||
|
||||
public function __construct(){
|
||||
if( empty($this->ChineseCharacters) ){
|
||||
$this->ChineseCharacters = file_get_contents('../application/inc/pinyin/ChineseCharacters.dat');
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 转成带有声调的汉语拼音
|
||||
* param $input_char String 需要转换的汉字
|
||||
* param $delimiter String 转换之后拼音之间分隔符
|
||||
* param $outside_ignore Boolean 是否忽略非汉字内容
|
||||
*/
|
||||
public function TransformWithTone($input_char,$delimiter=' ',$outside_ignore=false){
|
||||
|
||||
$input_len = mb_strlen($input_char,$this->charset);
|
||||
$output_char = '';
|
||||
for($i=0;$i<$input_len;$i++){
|
||||
$word = mb_substr($input_char,$i,1,$this->charset);
|
||||
if(preg_match('/^[\x{4e00}-\x{9fa5}]$/u',$word) && preg_match('/\,'.preg_quote($word).'(.*?)\,/',$this->ChineseCharacters,$matches) ){
|
||||
$output_char.=$matches[1].$delimiter;
|
||||
}else if(!$outside_ignore){
|
||||
$output_char.=$word;
|
||||
}
|
||||
}
|
||||
|
||||
return $output_char;
|
||||
}
|
||||
|
||||
/*
|
||||
* 转成带无声调的汉语拼音
|
||||
* param $input_char String 需要转换的汉字
|
||||
* param $delimiter String 转换之后拼音之间分隔符
|
||||
* param $outside_ignore Boolean 是否忽略非汉字内容
|
||||
*/
|
||||
public function TransformWithoutTone($input_char,$delimiter='',$outside_ignore=true){
|
||||
|
||||
$char_with_tone = $this->TransformWithTone($input_char,$delimiter,$outside_ignore);
|
||||
|
||||
$char_without_tone = str_replace(array('ā','á','ǎ','à','ō','ó','ǒ','ò','ē','é','ě','è','ī','í','ǐ','ì','ū','ú','ǔ','ù','ǖ','ǘ','ǚ','ǜ','ü'),
|
||||
array('a','a','a','a','o','o','o','o','e','e','e','e','i','i','i','i','u','u','u','u','v','v','v','v','v')
|
||||
,$char_with_tone );
|
||||
return $char_without_tone;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* 转成汉语拼音首字母
|
||||
* param $input_char String 需要转换的汉字
|
||||
* param $delimiter String 转换之后拼音之间分隔符
|
||||
*/
|
||||
public function TransformUcwords($input_char,$delimiter=''){
|
||||
|
||||
$char_without_tone = ucwords($this->TransformWithoutTone($input_char,' ',true));
|
||||
$ucwords = preg_replace('/[^A-Z]/','',$char_without_tone);
|
||||
if(!empty($delimiter)){
|
||||
$ucwords = implode($delimiter,str_split($ucwords));
|
||||
}
|
||||
return $ucwords;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
include 'ChinesePinyin.class.php';
|
||||
|
||||
$Pinyin = new ChinesePinyin();
|
||||
$words = '汉字转成拼音类';
|
||||
/*
|
||||
$words = '汉字转成拼音类';
|
||||
echo '<h2>'.$words.'</h2>';
|
||||
|
||||
|
||||
|
||||
echo '<p>转成带有声调的汉语拼音<br/>';*/
|
||||
echo $result = $Pinyin->TransformWithTone($words);
|
||||
/*echo $result,'</p>';
|
||||
|
||||
|
||||
|
||||
echo '<p>转成带无声调的汉语拼音<br/>';
|
||||
$result = $Pinyin->TransformWithoutTone($words,' ');
|
||||
echo($result),'</p>';
|
||||
|
||||
|
||||
|
||||
echo '<p>转成汉语拼音首字母<br/>';
|
||||
$result = $Pinyin->TransformUcwords($words);
|
||||
echo($result),'</p>';*/
|
||||
Reference in New Issue
Block a user