记录一次导出word遇到的textare换行问题

时间:2022-03-31 21:02:05

事件:页面上通过textare添加信息,word导出。遇到换行全部变成了一个空格的问题。


解决方法:

首先要注意的:

1、Textarea 和 ckeditor(包括之前用的fckeditor)传递出来的东西,无需strCheck函数(以前是sqlReplace)的过滤。

2、Textarea传递的值一定要加HTMLEncode,然后才能写入数据库。(读出来的时候,直接显示;;;如果是重新编辑,则需要HTMLDecode来复原)

3、ckeditor的出来的值不能加HTMLEncode之类的处理。最新的WiiPHP中已经在function_common.php中增加了一个函数ckReplace来处理。

ckeditor传递的值,只要做两点处理,把单引号替换成编码格式的,以及把换行替换掉。(内容中的换行没法控制样式,都得搞成段落)。


当将数据导入时定义函数对数据中的标签做替换:

        function wordCode($parameter){

$parameter = str_replace(">",">",$parameter);
$parameter = str_replace("<","<",$parameter);
$parameter_arr= explode('<br/>', $parameter);
$str = '';
$parameter_arr1 = array();
if($parameter_arr){
foreach($parameter_arr as $key => $val){
if($val){
$parameter_arr1[] = HTMLDecode($val);
}
}

$str = implode('</w:t></w:r></w:p><w:p><w:r><w:rPr><w:sz w:val="21"/><w:sz-cs w:val="10.5"/></w:rPr><w:t>', $parameter_arr1);
}
return $str;

}