php转换大小写
Ⅰ 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代码,用来修改 mysql数据库中的商品名字的大小写
用数据库函数直接实现:
1.将所有proct_name修改为首字母大写,其余全小写
update
proct_details
set
proct_name=concat(upper(left(proct_name,1)),lower(mid(login_name,2,length(proct_name)-1)))
;
2.将所有proct_name修改为首字母大写,其余保持不变
update
proct_details
set
proct_name=concat(upper(left(proct_name,1)),mid(login_name,2,length(proct_name)-1))
;
Ⅲ 求一个 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");
?>
Ⅳ php mysql 如何将中文转换拼音、小写转大写;并排序
首先 在网上 找找函数 把中文转换成拼音的
例如 to_pinyin();
然后
$data_sort = array();
foreach($data as $row){
$data[to_pinyin($row)] = $row;
}
最后 用 键值排序 就可以了
Ⅳ 如何让thinkphp在获取数据库字段信息时区分数据库字段大小写
解决办法:
就是修改thinkphp的源码中的Library/Db/Driver.class.php文件,把
PDO::ATTR_CASE => PDO::CASE_LOWER 改为 PDO::ATTR_CASE => PDO::CASE_NATURAL,
或者在配置文件里面增加
DB_PARAMS’ => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL) 这一句。
第一次使用的时候这种解决方法果然可以,但是做另外一个项目的时候却始终不生效,无奈,网络了半天,找到一个方法,因为thinkphp执行的时候默认会把大写转换成小写,所以我们找到它的源码不让它转换就行。
修改Common/functions.php里面的parse_name函数源码为:
function parse_name($name, $type=0) {
/* if ($type) {
return ucfirst(preg_replace_callback('/_([a-zA-Z])/', function($match){return strtoupper($match[1]);}, $name));
} else {
//这里会将数据库表名里的大写转换为 _小写,修改成不转换
return strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $name), "_"));
}*/
return $name;
}
其中注释掉的是原来的,未注释是新增的。
修改Library/Think/Model.class.php里面的getTableName函数:
//$this->trueTableName = strtolower($tableName); //这里会将表名转换成小写,修改成不转换
$this->trueTableName = $tableName;
修改其中一句,这样就可以解决数据库字段名大写的问题。
Ⅵ php把一段字符串转成随机大小写
<?php
$str="你的字符串";
$arr=str_split($str);
/*65-90,97-122*/
foreach($arras$k=>$v){
$check=ord($v);
if(($check>=65&&$check<=90)||($check>=97&&$check<=122)){
$newArr[]=empty(rand(0,1))?strtoupper($v):$v;
}else{
$newArr[]=$v;
}
}
echoimplode('',$newArr);