应用场景
- 消息模板
- 日志模板
- 其它(自行扩展)
xml模板示例
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<group name="file" info="知识库管理">
<action type="category_admin" info="FILE_LOG_ADD_ADMIN">
<![CDATA[ 设置管理员:『{$unames}』]]>
</action>
<action type="attr_edit" info="编辑知识属性">
<![CDATA[ 编辑了知识属性『{$name}』 ]]>
</action>
<action type="attr_del" info="删除知识属性">
<![CDATA[ 删除了知识属性『{$name}』 ]]>
</action>
</group>
</root>
PHP解析示例
$var = unserialize($_data['data']);
$logFile = APP_PATH.'/Conf/logs.xml';
if(!file_exists($logFile)){
$this->error = '日志格式文件不存在';
return false;
}
$content = fetch($logFile, $var,'UTF8','application/json');
if(self::$domXml == null){
self::$domXml = new \domDocument;
}
self::$domXml->loadXml( $content );
unset($content);
$dom = @simplexml_import_dom(self::$domXml);
if( $_data['group'] ){
$result = $dom->xpath("//root/group[@name='".$_data['group']."']/action[@type='".$_data['action']."']");
}else{
$result = $dom->xpath("//root/action[@type='".$_data['action']."']");
}
$return = array('info'=>'无法解析日志内容','data'=>'无法解析日志内容');
if($result){
$return['info'] = (string) $result[0]['info'];
$return['data'] = trim( (string)$result[0] );
}
return $return;
数据示例
$data = [
'id' => '3596'
'uid' => '3'
'group' => 'file'
'ext_id1' => '223'
'ext_id2' => '0'
'action' => 'attr_del'
'ip' => '172.17.0.1'
'data' => 'a:1:{s:4:'name';s:3:'222';}'
'url' => 'xxx'
'ctime' => '1632388259'
'keyword' => '222'
]