thinkphp中的特殊字符处理
来源:互联网 发布:山西网络黄河电视台 编辑:程序博客网 时间:2024/05/22 06:03
根据最近项目整理 -- 有些特殊字符的存储展示会有问题,解决方案如下:
字符编码:
" 经过ThinkPHP的I 转换为 "< <
> >
& &
如果用 模板变量直接引用则可以还原,但是用js赋值则不能。js还原函数:
function restore_str_js(str){
var str = str.replace('"','"');
str = str.replace('<','<');
str = str.replace('>','>');
str = str.replace('&','&');
str = str.replace('char(10)','\r\n');//将换行符 还原展示于页面
return str;
}
换行符的处理:
textarea 有时候用户会插入换行符,但是不加处理插入到数据库中的时候会出错。
php处理之后存入数据库:
//将换行符替换为一个特殊标记,页面展示时还原
function filter_enter($str){
$str = str_replace(array("\r\n", "\r", "\n"), 'char(10)', $str); //把用户输入的回车替换成一个特殊字符 //textarea
return $str;
}
若为js读取:str = str.replace('char(10)','\r\n');//将换行符 还原展示于页面
若为模板变量:
//模板直接引用变量时 转换成换行符
function restore_enter($str){
$str = str_replace('char(10)','<br/>',$str);//将换行符 还原展示于页面
return $str;
}
\反斜杠的处理:
I函数对\不加处理,但是在sql查询语句中就会出错。正确的sql语句:
SELECT * FROM `a` where Word like '%\\'; 结果:ASPERT\
即1个反斜杠\要在查询之前转成2个反斜杠\\:
//将 \一个反斜杠转化为 \\两个反斜杠,用于数据库查询
function filter_str($str){
$str = str_replace("\\","\\\\",$str);
return $str;
}
如果数据库中的\是原样存储的,直接读取赋给模板变量,展示也是有问题的。
//将\反斜杠转换为\;(html实体)用于展示于页面
function restore_str($str){
$str = str_replace("\\","\",$str);
return $str;
}
如果用js读取:
php: $this->assign('name', filter_str($name)); //为了反斜杠 不然就一个反斜杠,后面和字符连起来转义乱码
js: var name = "{$name}";
阅读全文
0 0
- thinkphp中的特殊字符处理
- 文本中的特殊字符处理
- XML中的特殊字符处理
- mysql 中的特殊字符处理
- json字符中的特殊字符处理
- sed 处理替换字符中的特殊字符
- thinkphp模板特殊字符
- URL中的特殊字符处理笔记
- mysql sql语句中的特殊字符处理
- web.config文件中的特殊字符处理
- web.config文件中的特殊字符处理
- SQL查询中的特殊字符处理
- jQuery选择器中的特殊字符处理
- 关于java中的一些特殊字符处理
- json字符串中的特殊字符处理
- SQL查询中的特殊字符的处理
- java处理url中的特殊字符
- JS处理字符串中的特殊字符
- DemoA
- TextView图文混排,设置部分字体背景色
- 记录c++中有用的代码
- post方式AJAX
- 北京雾霾越来越重的原因找到了!
- thinkphp中的特殊字符处理
- 【tensorflow学习】FeatureColumn 的作用
- 算法谜题113 拿走硬币
- 解决SecureCRT下spark-shell中scala无法删除问题
- 简单 凯撒加密 C语言程序设计现代方法 第二版 第8章 15题 列2
- android 日志记录能力
- 欢迎使用CSDN-markdown编辑器
- Android Activity savedInstanceState
- android分包三步走