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);