t()中的用于字符串替换的@, %, 和 !占位符的起了安全的作用
t()函数提供了一种内置的方式用来确保你的字符串的安全性,使用一个带有单字符前缀的占位符,
这三个占位符分别是@, %, 和 !。
下面逐一进行介绍
1、前缀@告诉t()对替换占位符的值调用check_plain()函数,确保传递过来的变量不含不安全代码。
例子:
$color = 'red';
$content.= t('this color is @color',array('@color' => $color));
输出结果:this color is red
2、前缀%告诉t()对替换占位符的值进行强调,简单的使用了<em></em>标签对值进行了包装。
$color = 'red';
$content.= t('this color is %color',array('%color' => $color));
输出结果:this color is red
3、前缀!来禁用t()中的检查,然而如果你可以避免它的话,最好不用这个占位符。
$color = 'red';
$content.= t('this color is !color',array('!color' => $color));
输出结果:this color is red
下面是一个图来表示三个占位符的作用

以上文章参考了 葛洪儒翻译的 drupal专业开发指南
