在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 ; } |
应用举例:
-
帝国后台,自定义页面,直接页面式
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" />';
}
?>
$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" />';
}
?>