读取数据库字段值为xml格式的数据都页面

今天在做审计日志导出的时候突然发现自己的程序复现了一个很久没有出现过的bug,吓的一身冷汗,这要是到了市场发布流到了客户手里还不得被骂死啊,主要是后台c语言在抓取网页浏览的标题时抓到了这样的数据”<![CDATA[ 隐婚男女]]>“,此格式为xml的格式,但是如果采用如下语句:

 

<?php global $db; $query="select title from nmo_web_auditlog_history where start_time='2011-05-12 08:43:07'"; $result = $db->query($query); $data = $db->fetchNextObject($result); echo $data->title; ?>

指定是不会输出到页面的,这时既然发现了”<![CDATA[]]>“那就好办到了,正则匹配,哈哈~

于是乎:

$str ="<!--[CDATA[ 隐婚男女]]-->"; if(preg_match('//</!/[CDATA/[(.*?)/]/]/>/ies',$str, $tmp )) { echo $tmp[1] ; }

试了一把,结果如愿,哈哈~

最终的代码:

<?php global $db; $query="select title from nmo_web_auditlog_history where start_time='2011-05-12 08:43:07'"; $result = $db->query($query); $data = $db->fetchNextObject($result); if(preg_match('//</!/[CDATA/[(.*?)/]/]/>/ies',$data->title, $tmp )){ $title= $tmp[1] ; }else{ $title=trim($data->title); $title=html_entity_decode($data->title); }

你可能感兴趣的:(html,数据库,Web,xml,query,语言)