【发布时间】:2021-03-05 12:33:19
【问题描述】:
我有一个文本区域,用户可以在其中输入如下文本:
**Title 1**
aaa
bbb
ccc
**Title 2**
xxx
yyy
zzz
我将其转换为以下结果:
标题 1
>啊啊
> bbb
> 抄送
标题 2
> xxx
> 年年
> zzz
所以:
- 两个星号之间的所有内容都会转换为粗体文本
- 每个新行都会在行前放置一个
>
问题是结果被转换成这个:
标题 1
>啊啊
> bbb
> 抄送
>
标题 2
> xxx
> 年年
> zzz
>
空的新行也会得到>... 这不应该是这样。如何过滤掉所有空的新行?
测试代码:
<html>
<style>
.product-desc-section {
text-transform: uppercase;
font-weight: bold;
font-size: 1em;
}
</style>
<form method="post" action="">
<textarea name="text"></textarea>
<br><input type="submit" name="btnTest" value="test">
</form>
<?php
if (isset($_POST['btnTest'])) {
$text = $_POST['text'];
$text = preg_replace("/[\r\n]+/", "\n", $text);
$text = preg_replace('#\*{2}(.*?)\*{2}#', "<br><br><span class='product-desc-section'>$1</span>", htmlspecialchars($text));
$text = preg_replace('~[\r\n]+~', "<br><span class='new-line'>> </span>", $text);
echo "<pre>".$text."</pre>";
}
?>
</html>
测试输入:
**Title 1**
a
b
c
**Title 2**
x
y
z
输出:
标题 1
>一个
> 乙
> c
>
标题 2
> x
> 是
> z
预期输出:
标题 1
>一个
> 乙
> c
标题 2
> x
> 是
> z
如何只在每个不为空的新行上放置一个>-icon?
【问题讨论】: