将普通文本替换为正常 HTML 文本的方法

举报
崔庆才丨静觅 发表于 2021/05/22 00:16:48 2021/05/22
2.3k+ 0 0
【摘要】 综述 有时我们在 textarea 中输入了正常的文本内容,然而如果直接将文本取出来呈现在网页中,原本的换行和回车功能便会失效,完全丢失了原来的样式,这是因为在 HTML 中的空格和换行分别为 和,所以我们需要将其替换才能变成我们想要的样式。 注:本篇内容非常基础,仅作参考,不喜勿喷。 替换函数 我们可以定义这样的一个函数,将原来的字符串替换为 HTML 文本。即把空格和换...

综述

有时我们在 textarea 中输入了正常的文本内容,然而如果直接将文本取出来呈现在网页中,原本的换行和回车功能便会失效,完全丢失了原来的样式,这是因为在 HTML 中的空格和换行分别为 和
,所以我们需要将其替换才能变成我们想要的样式。 注:本篇内容非常基础,仅作参考,不喜勿喷。

替换函数

我们可以定义这样的一个函数,将原来的字符串替换为 HTML 文本。即把空格和换行替换掉即可

1
2
3
4
5
6
function htmtocode($content) { 
		$content = htmlspecialchars($content, ENT_QUOTES);
 $content = str_replace(" ", " ", $content); 
 $content = str_replace("\n", "<br>",$content); 
 return $content; 
	}

通过上述方法,我们首先将 HTML 的特殊标记转化,然后替换掉空格和换行即可。

用法

写个最简单的小例子,在 textarea 中输入任意的文本,存储到数据库,然后再取出来,可以实现 textarea 输入的效果,完全一样。 数据库名称:demo 数据库表:

1
2
3
4
5
CREATE TABLE IF NOT EXISTS `article` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text` text NOT NULL,
  PRIMARY KEY (`id`)
)

插入数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<head>
	<meta charset="utf-8">
</head>
<body>
	<form action="" method="post">
		<textarea name="text"></textarea>
		<input type="submit" name="sub">
	</form>
</body>
<?php 
	$con = mysql_connect("localhost", "root", "");
	if (!$con) {
		die("数据库连接失败");
	} 
	mysql_select_db("demo",$con);
	mysql_query("set names utf8");
	$text = @$_POST['text'];
	$sql = "insert into article(text) values ('$text')";
	echo $sql;
	$result = mysql_query($sql,$con);
	if ($result) {
		echo "录入成功";
	} else {
		echo "录入失败";
	}

?>

查询数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<head>
	<meta charset="utf-8">
</head>
<body>
	<form action="" method="post">
		<textarea name="text"></textarea>
		<input type="submit" name="sub">
	</form>
</body>
<?php 
	$con = mysql_connect("localhost", "root", "");
	if (!$con) {
		die("数据库连接失败");
	} 
	mysql_select_db("demo",$con);
	mysql_query("set names utf8");
	$text = @$_POST['text'];
	$sql = "select * from article";

	$result = mysql_query($sql,$con);
	if ($result) {
		while ($row = mysql_fetch_array($result)) {
			echo htmtocode($row['text']);
		}
	} else {
		echo "录入失败";
	}
	function htmtocode($content) { 
		$content = htmlspecialchars($content, ENT_QUOTES);
 $content = str_replace(" ", "&nbsp;", $content); 
 $content = str_replace("\n", "<br>",$content); 
 return $content; 
	}
?>

嗯,通过上面的方法我们便可以正常地实现输入内容和输出内容的匹配呈现。

文章来源: cuiqingcai.com,作者:崔庆才,版权归原作者所有,如需转载,请联系作者。

原文链接:cuiqingcai.com/1853.html

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。