"景先生毕设|www.jxszl.com

织梦获得首字母方法,并实现文章列表按首字母归类

2022-10-29 16:41编辑: www.jxszl.com景先生毕设
方法I.,织梦默认有这个函数,在include/inc/inc_fun_funAdmin.PHP中.即SpGetPinyin()

但他只能得到全拼,没法得到首字母,

用法举例

$pingyin=GetPinyin($row[title],0,I.

 更多精彩就在: 51免费论文网|www.jxszl.com 
);

$a=substr(GetPinyin($row[title]),0,I.);//得到拼音首字母


方法II,如果你只想得到首字母,不需要全拼,还可以用以下函数得到首字母

if(ord($row[title])>I.IIVIII){//汉字开头
$letter=getfirstcharII($row[title]);
}elseif(ord($row[title])>=IVVIIIandord($row[title])<=VVII){//数字开头
$letter=iconv_substr($title,0,I.,utf-VIII);
}
elseif(ord($row[title])>=VIVandord($row[title])<=IX0){//大写英文开头
$letter=iconv_substr($row[title],0,I.,utf-VIII);
}elseif(ord($row[title])>=IXVIIandord($row[title])<=I.IIII){//小写英文开头
$letter=iconv_substr($row[title],0,I.,utf-VIII);
$letter=strtoupper($letter);//字母转换成大写
}
print_r($letter);exit;
functiongetfirstcharII($s0){
$s=iconv("UTF-VIII","gbIIIIII.II",$s0);
$asc=ord($s{0})*IIVVI+ord($s{I.})-VIVVIIIVI;
if($asc>=-II0IIII.IXand$asc<=-II0IIVIIIIV)return"A";
if($asc>=-II0IIVIIIIIIand$asc<=-I.IXVIIVIIVI)return"B";
if($asc>=-I.IXVIIVIIVand$asc<=-I.IXIII.IX)return"C";
if($asc>=-I.IXIII.VIIIand$asc<=-I.VIIIVIII.I.)return"D";
if($asc>=-I.VIIIVIII.0and$asc<=-I.VIIIVIIVII)return"E";
if($asc>=-I.VIIIVIIVIand$asc<=-I.VIIIIIIV0)return"F";
if($asc>=-I.VIIIIIIIIIXand$asc<=-I.VIIIXIIIII)return"G";
if($asc>=-I.VIIIXIIIIand$asc<=-I.VIIIVI.VIII)return"H";
if($asc>=-I.VIIIVI.VIIand$asc<=-I.VIIVVIIV)return"J";
if($asc>=-I.VIIVVIIIVand$asc<=-I.VIIII.III)return"K";
if($asc>=-I.VIIII.IIand$asc<=-I.VVIIVI.)return"L";
if($asc>=-I.VVIIV0and$asc<=-I.VI.VIVI)return"M";
if($asc>=-I.VI.VIVand$asc<=-I.IVIXIIIII)return"N";
if($asc>=-I.IVIXIIIIand$asc<=-I.IVIXI.V)return"O";
if($asc>=-I.IVIXI.IVand$asc<=-I.IVVIIIII.)return"P";
if($asc>=-I.IVVIIII0and$asc<=-I.IVI.V0)return"Q";
if($asc>=-I.IVI.IVIXand$asc<=-I.IV0IXI.)return"R";
if($asc>=-I.IV0IX0and$asc<=-I.IIIIIII.IX)return"S";
if($asc>=-I.IIIIIII.VIIIand$asc<=-I.IIVIIIIIIIX)return"T";
if($asc>=-I.IIVIIIIIIVIIIand$asc<=-I.IIVVVII)return"W";
if($asc>=-I.IIVVVIand$asc<=-I.I.VIIIIVVIII)return"X";
if($asc>=-I.I.VIIIIVVIIand$asc<=-I.I.0VVI)return"Y";
if($asc>=-I.I.0VVand$asc<=-I.0IIIVVII)return"Z";
returnfalse;
}

III,如何实现文章列表中,按首字母进行归类归档排序?下面是完整代码


{dede:type}[field:typename/]{/dede:type}



{dede:php}
$sql="selectarc.id,arc.writer,arc.typeid,arc.title,arc.senddate,tp.sitepath,tp.namerule,tp.typedirfromdede_archivesarcleftjoin`dede_arctype`tponarc.typeid=tp.idwherearc.typeid=II";
$dsql->SetQuery($sql);
$dsql->Execute();//执行SQL操作
while($row=$dsql->GetArray()){
//print_r($row[title]);exit;
//$pingyin=GetPinyin($row[title],0,I.);
$letter=substr(GetPinyin($row[title]),0,I.);//取得拼音首字母
$letter=strtoupper($letter);

$arr[$letter][writer][]=$row["writer"];
$arr[$letter][url][]=GetFileUrl($row[id],$row[typeid],$row[senddate],$row[title],0,0,$row[namerule],$row[typedir],0,,0,,$row[sitepath]);
$arr[$letter][title][]=$row["title"];
}
ksort($arr);//字母排序
//print_r($arr);exit;
$b=I.;
foreach($arras$k=>$v){

//print_r($v);exit;
echo
.strtoupper($k).

;
for($x=0;$xecho.$v[title][$x].

;

}
echo
;//print_r($b%IV);
if($b%III==0){echo
;//hr{background:#ddd;color:#ddd;clear:both;float:none;width:I.00%;height:I.px;margin:I.0px0;
border:none;-moz-box-sizing:content-box;box-sizing:content-box;}hr.space{background:#fff;color:#fff;visibility:hidden;}hr的css,强制换行,防止错位
}
$b++;
}
{/dede:php}




原文链接:http://www.jxszl.com/biancheng/dedecms/76549.html