php 汉字转换拼音程序
class pinyin {
var $data = array(array("a",-20319),array("ai",-20317),array("an",-20304),array("ang",-20295),array("ao",-20292),array("ba",-20283),array("bai",-20265),array("ban",-20257),array("bang",-20242),array("bao",-20230),array("bei",-20051),array("ben",-20036),array("beng",-20032),array("bi",-20026),array("bian",-20002),array("biao",-19990),array("bie",-19986),array("bin",-19982),array("bing",-19976),array("bo",-19805),array("bu",-19784),array("ca",-19775),array("cai",-19774),array("can",-19763),array("cang",-19756),array("cao",-19751),array("ce",-19746),array("ceng",-19741),array("cha",-19739),array("chai",-19728),array("chan",-19725),array("chang",-19715),array("chao",-19540),array("che",-19531),array("chen",-19525),array("cheng",-19515),array("chi",-19500),array("chong",-19484),array("chou",-19479),array("chu",-19467),array("chuai",-19289),array("chuan",-19288),array("chuang",-19281),array("chui",-19275),array("chun",-19270),array("chuo",-19263),array("ci",-19261),array("cong",-19249),array("cou",-19243),array("cu",-19242),array("cuan",-19238),array("cui",-19235),array("cun",-19227),array("cuo",-19224),array("da",-19218),array("dai",-19212),array("dan",-19038),array("dang",-19023),array("dao",-19018),array("de",-19006),array("deng",-19003),array("di",-18996),array("dian",-18977),array("diao",-18961),array("die",-18952),array("ding",-18783),array("diu",-18774),array("dong",-18773),array("dou",-18763),array("du",-18756),array("duan",-18741),array("dui",-18735),array("dun",-18731),array("duo",-18722),array("e",-18710),array("en",-18697),array("er",-18696),array("fa",-18526),array("fan",-18518),array("fang",-18501),array("fei",-18490),array("fen",-18478),array("feng",-18463),array("fo",-18448),array("fou",-18447),array("fu",-18446),array("ga",-18239),array("gai",-18237),array("gan",-18231),array("gang",-18220),array("gao",-18211),array("ge",-18201),array("gei",-18184),array("gen",-18183),array("geng",-18181),array("gong",-18012),array("gou",-17997),array("gu",-17988),array("gua",-17970),array("guai",-17964),array("guan",-17961),array("guang",-17950),array("gui",-17947),array("gun",-17931),array("guo",-17928),array("ha",-17922),array("hai",-17759),array("han",-17752),array("hang",-17733),array("hao",-17730),array("he",-17721),array("hei",-17703),array("hen",-17701),array("heng",-17697),array("hong",-17692),array("hou",-17683),array("hu",-17676),array("hua",-17496),array("huai",-17487),array("huan",-17482),array("huang",-17468),array("hui",-17454),array("hun",-17433),array("huo",-17427),array("ji",-17417),array("jia",-17202),array("jian",-17185),array("jiang",-16983),array("jiao",-16970),array("jie",-16942),array("jin",-16915),array("jing",-16733),array("jiong",-16708),array("jiu",-16706),array("ju",-16689),array("juan",-16664),array("jue",-16657),array("jun",-16647),array("ka",-16474),array("kai",-16470),array("kan",-16465),array("kang",-16459),array("kao",-16452),array("ke",-16448),array("ken",-16433),array("keng",-16429),array("kong",-16427),array("kou",-16423),array("ku",-16419),array("kua",-16412),array("kuai",-16407),array("kuan",-16403),array("kuang",-16401),array("kui",-16393),array("kun",-16220),array("kuo",-16216),array("la",-16212),array("lai",-16205),array("lan",-16202),array("lang",-16187),array("lao",-16180),array("le",-16171),array("lei",-16169),array("leng",-16158),array("li",-16155),array("lia",-15959),array("lian",-15958),array("liang",-15944),array("liao",-15933),array("lie",-15920),array("lin",-15915),array("ling",-15903),array("liu",-15889),array("long",-15878),array("lou",-15707),array("lu",-15701),array("lv",-15681),array("luan",-15667),array("lue",-15661),array("lun",-15659),array("luo",-15652),array("ma",-15640),array("mai",-15631),array("man",-15625),array("mang",-15454),array("mao",-15448),array("me",-15436),array("mei",-15435),array("men",-15419),array("meng",-15416),array("mi",-15408),array("mian",-15394),array("miao",-15385),array("mie",-15377),array("min",-15375),array("ming",-15369),array("miu",-15363),array("mo",-15362),array("mou",-15183),array("mu",-15180),array("na",-15165),array("nai",-15158),array("nan",-15153),array("nang",-15150),array("nao",-15149),array("ne",-15144),array("nei",-15143),array("nen",-15141),array("neng",-15140),array("ni",-15139),array("nian",-15128),array("niang",-15121),array("niao",-15119),array("nie",-15117),array("nin",-15110),array("ning",-15109),array("niu",-14941),array("nong",-14937),array("nu",-14933),array("nv",-14930),array("nuan",-14929),array("nue",-14928),array("nuo",-14926),array("o",-14922),array("ou",-14921),array("pa",-14914),array("pai",-14908),array("pan",-14902),array("pang",-14894),array("pao",-14889),array("pei",-14882),array("pen",-14873),array("peng",-14871),array("pi",-14857),array("pian",-14678),array("piao",-14674),array("pie",-14670),array("pin",-14668),array("ping",-14663),array("po",-14654),array("pu",-14645),array("qi",-14630),array("qia",-14594),array("qian",-14429),array("qiang",-14407),array("qiao",-14399),array("qie",-14384),array("qin",-14379),array("qing",-14368),array("qiong",-14355),array("qiu",-14353),array("qu",-14345),array("quan",-14170),array("que",-14159),array("qun",-14151),array("ran",-14149),array("rang",-14145),array("rao",-14140),array("re",-14137),array("ren",-14135),array("reng",-14125),array("ri",-14123),array("rong",-14122),array("rou",-14112),array("ru",-14109),array("ruan",-14099),array("rui",-14097),array("run",-14094),array("ruo",-14092),array("sa",-14090),array("sai",-14087),array("san",-14083),array("sang",-13917),array("sao",-13914),array("se",-13910),array("sen",-13907),array("seng",-13906),array("sha",-13905),array("shai",-13896),array("shan",-13894),array("shang",-13878),array("shao",-13870),array("she",-13859),array("shen",-13847),array("sheng",-13831),array("shi",-13658),array("shou",-13611),array("shu",-13601),array("shua",-13406),array("shuai",-13404),array("shuan",-13400),array("shuang",-13398),array("shui",-13395),array("shun",-13391),array("shuo",-13387),array("si",-13383),array("song",-13367),array("sou",-13359),array("su",-13356),array("suan",-13343),array("sui",-13340),array("sun",-13329),array("suo",-13326),array("ta",-13318),array("tai",-13147),array("tan",-13138),array("tang",-13120),array("tao",-13107),array("te",-13096),array("teng",-13095),array("ti",-13091),array("tian",-13076),array("tiao",-13068),array("tie",-13063),array("ting",-13060),array("tong",-12888),array("tou",-12875),array("tu",-12871),array("tuan",-12860),array("tui",-12858),array("tun",-12852),array("tuo",-12849),array("wa",-12838),array("wai",-12831),array("wan",-12829),array("wang",-12812),array("wei",-12802),array("wen",-12607),array("weng",-12597),array("wo",-12594),array("wu",-12585),array("xi",-12556),array("xia",-12359),array("xian",-12346),array("xiang",-12320),array("xiao",-12300),array("xie",-12120),array("xin",-12099),array("xing",-12089),array("xiong",-12074),array("xiu",-12067),array("xu",-12058),array("xuan",-12039),array("xue",-11867),array("xun",-11861),array("ya",-11847),array("yan",-11831),array("yang",-11798),array("yao",-11781),array("ye",-11604),array("yi",-11589),array("yin",-11536),array("ying",-11358),array("yo",-11340),array("yong",-11339),array("you",-11324),array("yu",-11303),array("yuan",-11097),array("yue",-11077),array("yun",-11067),array("za",-11055),array("zai",-11052),array("zan",-11045),array("zang",-11041),array("zao",-11038),array("ze",-11024),array("zei",-11020),array("zen",-11019),array("zeng",-11018),array("zha",-11014),array("zhai",-10838),array("zhan",-10832),array("zhang",-10815),array("zhao",-10800),array("zhe",-10790),array("zhen",-10780),array("zheng",-10764),array("zhi",-10587),array("zhong",-10544),array("zhou",-10533),array("zhu",-10519),array("zhua",-10331),array("zhuai",-10329),array("zhuan",-10328),array("zhuang",-10322),array("zhui",-10315),array("zhun",-10309),array("zhuo",-10307),array("zi",-10296),array("zong",-10281),array("zou",-10274),array("zu",-10270),array("zuan",-10262),array("zui",-10260),array("zun",-10256),array("zuo",-10254));
function get_one($num){
if($num>0&&$num
return chr($num);
} elseif ($num-10247) {
return '';
} else {
for($i=count($this->data)-1;$i>=0;$i--){if($this->data[$i][1]
return $this->data[$i][0];
}
}
function conver($str) {
$ret="";
for($i=0;$i
if($p>160){
$q=ord(substr($str,++$i,1));
$p=$p*256+$q-65536;
}
$ret.=$this->get_one($p).' ';
}
return $ret;
}
}
?>
textclass.php
class CtbClass {
var $file='list.txt';
var $index;
//建立一个文件并写入输入
function null_write($new)
{
$f=fopen($this->file,"w");
flock($f,LOCK_EX);
fputs($f,$new);
fclose($f);
}
// 添加数据记录到文件末端
function add_write($new) {
$f=fopen($this->file,"a");
flock($f,LOCK_EX);
fputs($f,$new);
fclose($f);
}
// 配合readfile()的返回一起使用,把一行数据转换为一维数组
function make_array($line) {
$array = explode("x0E",$line);
return $array;
}
//把为一维数组转换一行数据
function join_array($line) {
$array = join("x0E",$line);
return $array;
}
// 返回数据文件的总行数
function getlines() {
$f=file($this->file);
return count($f);
}
// 返回下一行的数据记录(备用)
function next_line() {
$this->index=$this->index++;
return $this->get();
}
// 返回上一行的数据记录(备用)
function prev_line() {
$this->index=$this->index--;
return $this->get();
}
// 返回当前行的数据记录数据较小
function get() {
$f=fopen($this->file,"r");
flock($f,LOCK_SH);
for($i=0;$iindex;$i++) {
$rec=fgets($f,1024);
}
$line=explode("x0E",$rec);
fclose($f);
return $line;
}
// 返回当前行的数据记录数据较大
function get_big_file() {
$f=fopen($this->file,"r");
flock($f,LOCK_SH);
for($i=0;$iindex;$i++) {
$rec=fgets($f,1024*5);
}
$line=explode("x0E",$rec);
fclose($f);
return $line;
}
// 打开数据文件---以一维数组返回文件内容
function read_file() {
if (file_exists($this->file)) {
$line =file($this->file);
}
return $line;
}
// 打开数据文件---以二维数组返回文件内容
function openFile() {
if (file_exists($this->file)) {
$f =file($this->file);
$lines = array();
foreach ($f as $rawline) {
$tmpline = explode("x0E",$rawline);
array_push($lines, $tmpline);
}
}
return $lines;
}
// 传入一个数组,合并成一行数据,重写整个文件
function overwrite($array){
$newline = implode("x0E",$array);
$f = fopen($this->file,"w");
flock($f,LOCK_EX);
fputs($f,$newline);
fclose($f);
}
// 添加一行数据记录到文件末端
function add_line($array,$check_n=1) {
$s=implode("x0E",$array);
$f=fopen($this->file,"a");
flock($f,LOCK_EX);
fputs($f,$s);
if ($check_n==1) fputs($f,"n");
fclose($f);
}
// 插入一行数据记录到文件最前面
function insert_line($array) {
$newfile = implode("x0E",$array);
$f = fopen($this->file,"r");
flock($f,LOCK_SH);
while ($line = fgets($f,1024)) {
$newfile .= $line;
}
fclose($f);
$f = fopen($this->file,"w");
flock($f,LOCK_EX);
fputs($f,$newfile);
fclose($f);
}
// 更新所有符合条件的数据记录,适用于每行字节数据较大的情况
function update($column,$query_string,$update_array) {
$update_string = implode("x0E",$update_array);
$newfile = "";
$fc=file($this->file);
$f=fopen($this->file,"r");
flock($f,LOCK_SH);
for ($i=0;$i
if ($list[$column] != $query_string) {
$newfile = $newfile.chop($fc[$i])."n";
} else {
$newfile = $newfile.$update_string;
}
}
fclose($f);
$f=fopen($this->file,"w");
flock($f,LOCK_EX);
fputs($f,$newfile);
fclose($f);
}
// 更新所有符合条件的数据记录,适用于每行字节数据较小的情况
function update2($column,$query_string,$update_array) {
$newline = implode("x0E",$update_array);
$newfile = "";
$f = fopen($this->file,"r");
flock($f,LOCK_SH);
while ($line = fgets($f,1024)) {
$tmpLine = explode("x0E",$line);
if ($tmpLine[$column] == $query_string) {
$newfile .= $newline;
} else {
$newfile .= $line;
}
}
fclose($f);
$f = fopen($this->file,"w");
flock($f,LOCK_EX);
fputs($f,$newfile);
fclose($f);
}
// 删除所有符合条件的数据记录,适用于每行字节数据较大的情况
function delete($column,$query_string) {
$newfile = "";
$fc=file($this->file);
$f=fopen($this->file,"r");
flock($f,LOCK_SH);
for ($i=0;$i
if ($list[$column] != $query_string) {
$newfile = $newfile.chop($fc[$i])."n";
}
}
fclose($f);
$f=fopen($this->file,"w");
flock($f,LOCK_EX);
fputs($f,$newfile);
fclose($f);
}
// 删除所有符合条件的数据记录,适用于每行字节数据较小的情况
function delete2($column,$query_string){
$newfile = "";
$f = fopen($this->file,"r");
flock($f,LOCK_SH);
while ($line = fgets($f,1024)) {
$tmpLine = explode("x0E",$line);
if ($tmpLine[$column] != $query_string) {
$newfile .= $line;
}
}
fclose($f);
$f = fopen($this->file,"w");
flock($f,LOCK_EX);
fputs($f,$newfile);
fclose($f);
}
//取得一个文件里某个字段的最大值
function get_max_value($column) {
$tlines = file($this->file);
for ($i=0;$i
$line=explode("x0E",$tlines[$i]);
$get_value[]=$line[$column];
}
$get_max_value = max($get_value);
return $get_max_value;
}
// 根据数据文件的某个字段是否包含$query_string进行查询,以二维数组返回所有符合条件的数据
function select($column, $query_string) {
$tline = $this->openfile();
$lines = array();
foreach ($tline as $line) {
if ($line[$column] == $query_string) {
array_push($lines, $line);
}
}
return $lines;
}
// 功能与function select()一样,速度可能略有提升
function select2($column, $query_string) {
if (file_exists($this->file)) {
$tline = $this->read_file();
foreach ($tline as $tmpLine) {
$line = $this->make_array($tmpLine);
if ($line[$column] == $query_string) {
$lines[]=$tmpLine;
}
}
}
return $lines;
}
// 根据数据文件的某个字段是否包含$query_string进行查询,以一维数组返回第一个符合条件的数据
function select_line($column, $query_string) {
$tline = $this->read_file();
foreach ($tline as $tmpLine) {
$line = $this->make_array($tmpLine);
if ($line[$column] == $query_string) {
return $line;
break;
}
}
}
// select next/prev line(next_prev ==> 1/next, 2/prev) by cx
function select_next_prev_line($column, $query_string, $next_prev) {
$tline = $this->read_file();
$line_key_end = count($tline) - 1;
$line_key = -1;
foreach ($tline as $tmpLine) {
$line_key++;
$line = $this->make_array($tmpLine);
if ($next_prev == 1) { // next?
if ($line[$column] == $query_string) {
if ($line_key == 0) {
return 0;
} else {
$line_key_up = $line_key - 1;
return $up_line;
}
} else {
$up_line = $line;
}
} elseif ($next_prev == 2) { // prev?
if ($line[$column] == $query_string) {
if ($line_key == $line_key_end) {
return 0;
} else {
$line_key_down = $line_key + 1;
break;
}
}
} else {
return 0;
}
}
$down_line = $this->make_array($tline[$line_key_down]);
return $down_line;
}
}
$file=fopen('list.txt',"a+");
if($file == FALSE)exit('无法创建或者打开list.txt');
function __urljudge($url){
$suffixes="com|net|org|gov|biz|com.tw|com.hk|com.ru|net.tw|net.hk|net.ru|info|cn|com.cn|net.cn|org.cn|gov.cn|mobi|name|sh|ac|la|travel|tm|us|cc|tv|jobs|asia|hn|lc|hk|bz|com.hk|ws|tel|io|tw|ac.cn|bj.cn|sh.cn|tj.cn|cq.cn|he.cn|sx.cn|nm.cn|ln.cn|jl.cn|hl.cn|js.cn|zj.cn|ah.cn|fj.cn|jx.cn|sd.cn|ha.cn|hb.cn|hn.cn|gd.cn|gx.cn|hi.cn|sc.cn|gz.cn|yn.cn|xz.cn|sn.cn|gs.cn|qh.cn|nx.cn|xj.cn|tw.cn|hk.cn|mo.cn|org.hk";
if(!eregi("^(www.)?([A-Za-z0-9-])+.($suffixes)$",$url)){
echo "";
exit;
}else {return $url;}
}
function get_real_ip(){
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
for ($i = 0; $i
if (!eregi ("^(10|172.16|192.168).", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
$ip=get_real_ip();
$text_class=new CtbClass();
$date=mktime (date(H)-24, date(i), date(s), date(m), date(d), date(Y));
$history=$text_class->openFile();
for ($i=0;$i
}
}
?>