社区
基础编程
帖子详情
如何防止录入数据库时\r\n被自动写成
的问题
yueyang
2004-08-16 04:04:34
$text = str_replace('<br>',"\r\n",$text);
我把字符串中的<br>换成了回车换行,但只要把这个字符串写入数据库就会自动把回车换行给变成<br>,怎样解决这个问题?
...全文
237
11
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
11 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zyzeric
2004-08-17
晕,接分
打赏
举报
回复
赞
yueyang
2004-08-16
问题基本查明,竟然和正则有关系?
在我的正则前用这个替换,结果就正常。而在正则取出的字符串上用这个替换就出现这个问题。
打赏
举报
回复
赞
pswdf
2004-08-16
不可能出现此种现象
打赏
举报
回复
赞
xuzuning
2004-08-16
不可能出现此种现象,除非你做了替换
$text = str_replace("\r\n",'<br>',$text);
或
$text = nl2br($text);
通常入库时除了必要的转义("'"===>"\'")以外,不要做任何处理。这样在库中保存的是最原始的数据。这样也才便于读出后的处理!
估计你的问题出在作为换行的<br>是大写的<BR>或是<br />,你用
$text = str_replace('<br>',"\r\n",$text);
根本不能被替换掉
打赏
举报
回复
赞
tod204
2004-08-16
myssql还没有这个功能!
$text = str_replace('<br>',"\r\n",$text);
应该是你这条语句没有被执行!
你 看一看这条语句的前面是不是有判断?
如果有,你确定程序会跑上面的那条语句!
打赏
举报
回复
赞
yueyang
2004-08-16
file_get_contents();
打赏
举报
回复
赞
-神仙-
2004-08-16
你是怎么读的
打赏
举报
回复
赞
yueyang
2004-08-16
是这样的
现从一个HTML文件中读取里面的内容,里面自然就有<br>了,然后把<br>替换成\n或者\r\n再写入数据库,结果数据写入成功后用PHPMYADMIN打开发现又变成了<br>,但将处理过的字符串用echo显示后查看代码,能够正常的显示回车,没有<br>字符。
如果不读取文件中的内容,而是在代码里写一个$text字符串里面包含若干<br>然后在替换成\n或者\r\n,再写入数据库却正常。
打赏
举报
回复
赞
张海霖
2004-08-16
绝不可能。
没这种可能。
写入数据库之前应把\r\n换成<br>
取出时相反与你说的正好相反。
打赏
举报
回复
赞
pwtitle
2004-08-16
try it:
$text = str_replace('<br>',"\\r\\n",$text);
打赏
举报
回复
赞
qingxia
2004-08-16
不能吧?
没听说过mysql有那种功能
你把整个代码,贴出来看看吧
打赏
举报
回复
赞
相关推荐
"
\
r
\
n"与"
br
>"的区别
\
n是换行,英文是New line,表示使光标到行首
\
r是回车,英文是Carriage return,表示使光标下移一格
\
r
\
n表示回车换行
\
\
反斜杠
\
$ 美圆符
\
" 双引号
\
' 单引号 "
\
r
\
n"与"</
br
>"的区别
\
r
\
n是输出的HTML代码换行,客户看到的效果没有换行。 如果是输出给浏览器,就用<
br
/>
\
r...
/r/n和/n的区别
<
br
/>/r 是回车,return<
br
/>/n 是换行,newline <
br
/> <
br
/>我们在平
时
使用电脑
时
,已经习惯了回车和换行一次搞定,敲一个回车键,即是回车,又是换行,但在早期的打字机上,要另起一行打字需要两个步骤,首先要发送命令"/r”将打字头复位,即回车,然后再发送命令"/n”让打字机走纸移到下一行,所以这个历史遗留
问题
导致了如今我们在DOS-Windows的系统里需要区分"/r/n”和“/n”,但在Unix中只有"/n”。 <
br
/>用UltraEdit打开文本查看,会看到换
/r/n与/n的区别
<
br
/>/r表示回车,/n表示换行,我们按回车按钮的
时
候,系统
自动
产生回车和换行两个字符。 <
br
/>回车仅仅是表示完成,把光标回到行首,换行仅仅是换行,不表示完成,也不把光标放到行首。
\
n和
\
r的
问题
我对
\
r和
\
n的理解是:
\
r是回车,光标回到行首。
\
n是换行,关闭移到行末。 理论上System.out.println("abcd
\
r123");的输出结果不应该是123d吗? 但是结果却是与用
\
r
\
n一个效果,正常换行了,这是为什么?会不会是eclipse
自动
换行了?我用的是MyEclipse5.5. 试来试去,发现只写
\
r或只写
\
n和同
时
写
\
r
\
n的效果是一样的。
\
n换行之后,光标不是应该在行尾,仅为换行回车中的“换行”吗?
\
r不是仅为换行回车中的“回车”,没有换行的作用吗? 还是说现
发帖
基础编程
微信扫一扫
点击复制链接
分享社区
下载分享明细
2.1w+
社区成员
14.0w+
社区内容
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
帖子事件
创建了帖子
2004-08-16 04:04
社区公告
暂无公告