1.网页上编辑包含单引号,用php直接插入sqlite会insert出错。
可以使用sqlite_escape_string(输入值); //此项会把单引号替换成\' 插入数据库
在网页展示时使用str_replace("\'", "'", $entry['a']);将\'转换成单引号来展现。
2.插入内容带双引号,单引号时,用函数。
$text1=escape_string(text1); $text2=escape_string(text2); insert into MINGYAN (Content1,Content2,Content3,View) VALUES ('$text1','$text2','$time',0); function escape_string($string, $quotestyle='both') { if( function_exists('sqlite_escape_string') ){ $string = sqlite_escape_string($string); $string = str_replace("''","'",$string); #- no quote escaped so will work like with no sqlite_escape_string available } else{ $escapes = array("\x00", "\x0a", "\x0d", "\x1a", "\x09","\\"); $replace = array('\0', '\n', '\r', '\Z' , '\t', "\\\\"); } switch(strtolower($quotestyle)){ case 'double': case 'd': case '"': $escapes[] = '"'; $replace[] = '\"'; break; case 'single': case 's': case "'": $escapes[] = "'"; $replace[] = "''"; break; case 'both': case 'b': case '"\'': case '\'"': $escapes[] = '"'; $replace[] = '\"'; $escapes[] = "'"; $replace[] = "''"; break; } return str_replace($escapes,$replace,$string); }
3.在网页input编辑框中输入的回车换行符,在网页显示的时候不显示回车。
解决:使用<pre></pre>,可以保留回车和空格,但是会撑开表单。
使用<pre class='edit_class' style='white-space: pre-wrap;word-break:break-all;'></pre>
其中 style设置了pre里的内容会自动换行;class='edit_class' 设置了pre里的字体格式和大小按edit_class展示。