一、phpcms在添加栏目的时候其英文目录是不能有空格的,例如填写contact us是不行的,那么就需要想办法处理一下了。
使用str_replace()可以很容易的解决此问题。代码如下(假设添加栏目时的英文目录中的空格用"-"代替,以contact-us为例):
{if $CATEGORYS[$parentid][catdir]} <?php $str = str_replace("-"," ",$CATEGORYS[$parentid][catdir]); echo strtoupper($str); ?> {else} <?php $str = str_replace("-"," ",$CATEGORYS[$catid][catdir]); echo strtoupper($str); ?> {/if}
说明:如果存在父栏目,则使用父栏目的英文目录,并将其中的“-”替换成" ",输出时转换成大写字母(该例子的英文目录是contact-us,那么转换后就变成了CONTACT US),否则直接使用当前栏目的英文目录,并。。。同上。。。
注意:此方法会将其中所有的"-"均替换成空格,例如:contact-us-ok_or-not会变成CONTACT US OK_OR NOT
二、有时候,设计师会把栏目的英文名(英文目录)的首字母和和之后的字母设计的很“漂亮”(例如将它们拆散),但是html和css又不好实现,所以就打上了用php操作的主意啦,思路如下:
将英文目录的所有字符传给一个数组,然后按再按需输出就OK啦。
1.取英文目录的第一个字符
可以直接使用程序自身的功能实现
{if $parentid}{str_cut($CATEGORYS[$parentid][catdir],2,'')}{else}{str_cut($CATEGORYS[$catid][catdir],2,'')}{/if}
还可以像下面这样
<?php if($CATEGORYS[$parentid][catdir]){$str=$CATEGORYS[$parentid][catdir];} else $str=$CATEGORYS[$catid][catdir]; $sum_arr = array(); for($i=strlen($str);$i>0;$i--){ $sum_arr[] = substr($str,$i-1,1); } $j=strlen($str); for($k=$j;$k>=$j-1;$k--){ echo "$sum_arr[$k]"; } ?>
说明:如果存在父栏目,则取父栏目英文目录的首字母,否则取当前栏目英文目录的首字母。
2.取英文目录第一个字符之后的所有字符
<?php if($CATEGORYS[$parentid][catdir]){$str=$CATEGORYS[$parentid][catdir];} else $str=$CATEGORYS[$catid][catdir]; $sum_arr = array(); for($i=strlen($str);$i>0;$i--){ $sum_arr[] = substr($str,$i-1,1); } $j=strlen($str); for($k=$j-2;$k>=0;$k--){ echo "$sum_arr[$k]"; } ?>
说明:如果存在父栏目,则取父栏目英文目录的首字母,否则取当前栏目英文目录的首字母。
有朋自远方来...评论一下呗O(∩_∩)O