半角全角问题 请问有没有将半角转变为全角的方法,我用到一个函数只处理全角的,输入半角字符就会有错,有将输入半角字符自动转换为全角的吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果仅仅是ASCII 1-127以内的的字符,用字表或者运算替换都是很快速的不需理会哪种方法但如果要把欧洲字符等等都涉及在内,就有很多判断,需要一些特定的类 我做的一个日文半角片假名转全角片假名的函数function my_split($string){ $count = mb_strlen($string); for($i=0;$i<$count;){ $ordvalue=ord(substr($string,$i,1)); if($ordvalue==131 || $ordvalue==130 || $ordvalue==129){ $ret[]=substr($string,$i,2); $i+=2; }else{ $ret[]=substr($string,$i,1); $i+=1; } } return $ret;}function convKanaZenHan( $str ){ $kanaBefore = "ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ ダ チ ヂ ッ ツ ヅ テ デ ト ド ナ ニ ヌ ネ ノ ハ バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ マ ミ ム メ モ ャ ヤ ュ ユ ョ ヨ ラ リ ル レ ロ ワ ワ ヲ ン ー A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ,"; $kanaAfter = "ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ ダ チ ヂ ッ ツ ヅ テ デ ト ド ナ ニ ヌ ネ ノ ハ バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ マ ミ ム メ モ ャ ヤ ュ ユ ョ ヨ ラ リ ル レ ロ ヮ ワ ヲ ン ー A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 、"; $array = my_split($str); $backslash = explode(" ",$kanaBefore); $chairman = explode(" ",$kanaAfter); $restr=""; foreach($array as $key=>$value){ $pos=array_search($value,$backslash); if(($pos=array_search($value,$backslash))!=null){ $restr.=$chairman[$pos]; }else{ $restr.=$value; } } return $restr;}echo convKanaZenHan("ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ ダ チ ヂ ッ ツ ヅ テ デ ト ド ナ ニ ヌ ネ ノ ハ バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ マ ミ ム メ モ ャ ヤ ュ ユ ョ ヨ ラ リ ル レ ロ ヮ ワ ヲ ン ー A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 、"); 嗯,我现在也遇到了这个问题了,像vb好像就一个strConv函数就搞定了。 几个php基础但是书上没找到的问题 header session等各种本地和服务器问题 求一个简单的网站 构想 都进来看看 怎么求这个数组占用多少的内存空间 一个insert问题 PHP无限分类的代码谁有??? SQLSERVER中事务SQL怎末写? GetRows()问题。。。。。 mysql一个表中没有定义序号变量,如何检索可能重复的变量? 页面出现 Notice: Undefined variable DE_de in xxxx amfphp 需要怎么配置? PHP进度条问题
不需理会哪种方法但如果要把欧洲字符等等都涉及在内,就有很多判断,需要一些特定的类
$count = mb_strlen($string);
for($i=0;$i<$count;){
$ordvalue=ord(substr($string,$i,1));
if($ordvalue==131 || $ordvalue==130 || $ordvalue==129){
$ret[]=substr($string,$i,2);
$i+=2;
}else{
$ret[]=substr($string,$i,1);
$i+=1;
}
}
return $ret;
}function convKanaZenHan( $str )
{
$kanaBefore = "ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ ダ チ ヂ ッ ツ ヅ テ デ ト ド ナ ニ ヌ ネ ノ ハ バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ マ ミ ム メ モ ャ ヤ ュ ユ ョ ヨ ラ リ ル レ ロ ワ ワ ヲ ン ー A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ,";
$kanaAfter = "ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ ダ チ ヂ ッ ツ ヅ テ デ ト ド ナ ニ ヌ ネ ノ ハ バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ マ ミ ム メ モ ャ ヤ ュ ユ ョ ヨ ラ リ ル レ ロ ヮ ワ ヲ ン ー A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 、"; $array = my_split($str); $backslash = explode(" ",$kanaBefore);
$chairman = explode(" ",$kanaAfter); $restr="";
foreach($array as $key=>$value){
$pos=array_search($value,$backslash);
if(($pos=array_search($value,$backslash))!=null){
$restr.=$chairman[$pos];
}else{
$restr.=$value;
}
}
return $restr;
}echo convKanaZenHan("ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ ダ チ ヂ ッ ツ ヅ テ デ ト ド ナ ニ ヌ ネ ノ ハ バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ マ ミ ム メ モ ャ ヤ ュ ユ ョ ヨ ラ リ ル レ ロ ヮ ワ ヲ ン ー A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 、");