㈠ php编写函数change($str)实现字符串转换功能,例如“str_replace”转换成"S
如果是小写转大写即“str_replace”转换成“STR_REPLACE”?
php内置了函数strtoupper(),直接strtoupper("str_replace")即可,如果你要写成change函数,那么就是:
function change($str){
return strtoupper($str);
}
2.如果就是从“str_replace”转换成"S",可以使用substr等字符串操作函数,比如:
function change($str){
returnsubstr( strtoupper($str), 0, 1 );
}
㈡ PHP 数字大小写转换
先把他赋给一个数组,然后用array_flip之类的数组操作函数,取值,可以取索引也可以取数据
<?php
$a=array('1'=>'一','2'=>'二');
print_r($a);
$b=array_flip($a);
print_r($b);
foreach($a as $b1=>$key){
echo $key;echo '<br>';
}
?>
关键是自己把对应关系写到一个数组,就可以随便操作了
㈢ 求一个 php 数字小写转为大写的函数(在线等,谢谢)
PHP把阿拉伯数字转换成中文,需要定义一个转换的算法:
算法实例:
<?php
/将数字转换为汉字,比如1210转换为一千二百一十
$num="842105580";//九位数
functiondel0($num)//去掉数字段前面的0
{
return"".intval($num);
}
functionn2c($x)//单个数字变汉字
{
$arr_n=array("零","一","二","三","四","五","六","七","八","九","十");
return$arr_n[$x];
}
functionnum_r($abcd)//读取数值(4位)
{
$arr=array();
$str="";//读取后的汉字数值
$flag=0;//该位是否为零
$flag_end=1;//是否以“零”结尾
$size_r=strlen($abcd);
for($i=0;$i<$size_r;$i++)
{
$arr[$i]=$abcd{$i};
}
$arrlen=count($arr);
for($j=0;$j<$arrlen;$j++)
{
$ch=n2c($arr[$arrlen-1-$j]);//从后向前转汉字
echo$ch;
echo"";
if($ch=="零"&&$flag==0){//如果是第一个零
$flag=1;//该位为零
$str=$ch.$str;//加入汉字数值字符串
continue;
}elseif($ch=="零"){//如果不是第一个零了
continue;
}
$flag=0;//该位不是零
switch($j){
case0:$str=$ch;$flag_end=0;break;//第一位(末尾),没有以“零”结尾
case1:$str=$ch."十".$str;break;//第二位
case2:$str=$ch."百".$str;break;//第三位
case3:$str=$ch."千".$str;break;//第四位
}
}
if($flag_end==1)//如果以“零”结尾
{
mb_internal_encoding("UTF-8");
$str=mb_substr($str,0,mb_strlen($str)-1);//把“零”去掉
}
return$str;
}
functionnum2ch($num)//整体读取转换
{
$num_real=del0($num);//去掉前面的“0”
$numlen=strlen($num_real);
echo"numlen=".$numlen."";
if($numlen>=9)//如果满九位,读取“亿”位
{
$y=substr($num_real,-9,1);
//echo$y;
$wsbq=substr($num_real,-8,4);
$gsbq=substr($num_real,-4);
$a=num_r(del0($gsbq));
$b=num_r(del0($wsbq))."万";
$c=num_r(del0($y))."亿";
}elseif($numlen<=8&&$numlen>=5)//如果大于等于“万”
{
$wsbq=substr($num_real,0,$numlen-4);
$gsbq=substr($num_real,-4);
$a=num_r(del0($gsbq));
$b=num_r(del0($wsbq))."万";
$c="";
}elseif($numlen<=4)//如果小于等于“千”
{
$gsbq=substr($num_real,-$numlen);
$a=num_r(del0($gsbq));
$b="";
$c="";
}
$ch_num=$c.$b.$a;
return$ch_num;
}
echo$num."";//数字
echonum2ch($num);//汉字
echo"";
echonum2ch("1240");
?>