找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 133|回复: 0

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

[复制链接]

该用户从未签到

发表于 2021-2-16 09:53:25 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
方法一,织梦默认有这个函数,在include/inc/inc_fun_funAdmin.PHP中.即SpGetPinyin()
         
        但他只能得到全拼,没法得到首字母,
         
        用法举例
         
        $pingyin=GetPinyin($row['title',,0]1);
         
        $a=substr(GetPinyin($row['title',),0]1);//得到拼音首字母
         
         
        方法二,如果你只想得到首字母,不需要全拼,还可以用以下函数得到首字母
         
        if (ord($row['title',)>128) { //汉字开头
         $letter=getfirstchar2($row['title',);
        }else if(ord($row['title',)>=48 and ord($row['title',)
        $letter=iconv_substr($title,0]1,'utf-8');
        }
        else if(ord($row['title',)>=65 and ord($row['title',)
        $letter=iconv_substr($row['title',,0]1,'utf-8');
        }else if(ord($row['title',)>=97 and ord($row['title',)
        $letter=iconv_substr($row['title',,0]1,'utf-8');
        $letter=strtoupper($letter);//字母转换成大写
        }
        print_r($letter);exit;
         function getfirstchar2($s0){
        $s=iconv("UTF-8","gb2312", $s0);  
        $asc=ord($s{0})*256+ord($s{1})-65536;  
        if($asc>=-20319 and $asc
        if($asc>=-20283 and $asc
        if($asc>=-19775 and $asc
        if($asc>=-19218 and $asc
        if($asc>=-18710 and $asc
        if($asc>=-18526 and $asc
        if($asc>=-18239 and $asc
        if($asc>=-17922 and $asc
        if($asc>=-17417 and $asc
        if($asc>=-16474 and $asc
        if($asc>=-16212 and $asc
        if($asc>=-15640 and $asc
        if($asc>=-15165 and $asc
        if($asc>=-14922 and $asc
        if($asc>=-14914 and $asc
        if($asc>=-14630 and $asc
        if($asc>=-14149 and $asc
        if($asc>=-14090 and $asc
        if($asc>=-13318 and $asc
        if($asc>=-12838 and $asc
        if($asc>=-12556 and $asc
        if($asc>=-11847 and $asc
        if($asc>=-11055 and $asc
        return false;  
        }
         
        三,如何实现文章列表中,按首字母进行归类归档排序?下面是完整代码
         
         
        {dede:type }[field:typename/,{/dede:type}

         
        {dede:php}  
        $sql = "select arc.id,arc.writer,arc.typeid, arc.title, arc.senddate,tp.sitepath,tp.namerule,tp.typedir from dede_archives  arc  left join `dede_arctype` tp on arc.typeid=tp.id where arc.typeid=2";
         $dsql->SetQuery($sql);
        $dsql->Execute();//执行SQL操作
        while($row = $dsql->GetArray()){
        //print_r($row['title',);exit;
        //$pingyin=GetPinyin($row['title',,0]1);
        $letter=substr(GetPinyin($row['title',),0]1);//取得拼音首字母
        $letter=strtoupper($letter);
          
        $arr[$letter,['writer',[,=$row["writer",;
        $arr[$letter,['url',[,=GetFileUrl($row['id',,$row['typeid',,$row['senddate',,$row['title',,0,500]$row['namerule',,$row['typedir',,0] '',0]'',$row['sitepath',);
        $arr[$letter,['title',[,=$row["title",;        
        }  
        ksort($arr);//字母排序
        //print_r($arr);exit;
        $b=1;
        foreach($arr as $k=>$v){
          
        //print_r($v);exit;
        echo ''.strtoupper($k).'
';
        for ($x=0; $x
                     echo '[url=,'. $v[title,[$x,.'[/url]
';
                      
                }     
                     echo '
';// print_r($b%4);
                     if($b%3==0){echo '';//hr{background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:1px;margin:10px 0;
                     border:none;-moz-box-sizing:content-box;box-sizing:content-box;}hr.space{background:#fff;color:#fff;visibility:hidden;}hr的css,强制换行,防止错位
                     }
                     $b++;
                     }
        {/dede:php}
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-3 04:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表