帝国cms之egetzy函数

 在php的模版编辑中,因为安全的需要,特殊字符会被过滤掉而无法传递到服务器端,但是我们却离不了这些特殊字符,为了解决这个问题,帝国cms设计了egetzy函数。该函数在/class/connect.php(帝国后台必须引用的文件)中,可见其重要性,其代码为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//返回转义
function egetzy($n='2'){
    if($n=='rn')
    {
        $str="\r\n";
    }
    elseif($n=='n')
    {
        $str="\n";
    }
    elseif($n=='r')
    {
        $str="\r";
    }
    elseif($n=='t')
    {
        $str="\t";
    }
    elseif($n=='syh')
    {
        $str="\\\"";
    }
    elseif($n=='dyh')
    {
        $str="\'";
    }
    else
    {
        for($i=0;$i<$n;$i++)
        {
            $str.="\\";
        }
    }
    return $str;
}

应用举例:

  1. 帝国后台,自定义页面,直接页面式

js代码:

who=who.replace(/[^\dA-Za-z\u3007\u4E00-\u9FCB\uE815-\uE864]+/g,',');

这个正则用来替换掉who中的中文,字符,数字以外的其他字符为逗号。表达式中的1个反斜杠需要用四个反斜杠替换能正确生成。

who=who.replace(/[^\\\\dA-Za-z\\\\u3007\\\\u4E00-\\\\u9FCB\\\\uE815-\\\\uE864]+/g,',');

也可以使用egetzy函数完成:

who=who.replace(/[^<?php echo egetzy(2)?>dA-Za-z\\\\u3007\\\\u4E00-\\\\u9FCB\\\\uE815-\\\\uE864]+/g,',');

2.图片模板中,分割多值字段

1
2
 $morepic=$navinfor['morepic'];
    $mpr=explode(egetzy('rn'),$morepic);

 

使用实例:eg:

这篇文章主要为大家介绍了帝国CMS图集字段的大图,小图,说明的调用方法,通过系统内置的数组变量$navinfor操作图片字段,是非常实用的技巧,需要的朋友可以参考下

 

复制代码
代码如下:
<?php 
$arr = array(); 
$arr = $navinfor['morepic']; 
$newarr = explode(egetzy('rn'),$arr); 
$count = count(explode(egetzy('rn'),$navinfor[morepic]));//图集的图片数量
for($i=0;$i<$count;$i++) 

$s_arr = array(); 
$s_arr[] = $newarr[$i]; 
$str = $s_arr[0]; 

$bot_arr = explode("::::::", $str); 
$spic = $bot_arr[0];//小图 
$bpic = $bot_arr[1];//大图 
$picinfo = $bot_arr[2];//图片说明 </p> <p>echo '<img src="'.$spic.'" data-large="'.$bpic.'" alt="'.$picinfo.'" width="65" height="65" />'; 

?>

扫一扫手机访问