可以使用sqlite_escape_string(输入值); //此项会把单引号替换成\' 插入数据库
在网页展示时使用str_replace("\'", "'", $entry['a']);将\'转换成单引号来展现。
$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);
}
解决:使用<pre></pre>,可以保留回车和空格,但是会撑开表单。
使用<pre class='edit_class' style='white-space: pre-wrap;word-break:break-all;'></pre>
其中 style设置了pre里的内容会自动换行;class='edit_class' 设置了pre里的字体格式和大小按edit_class展示。