以SQL段落和空行为例(PHP、CSS、$MySQL)
我在这里浏览了一段时间,虽然我发现其中有很多有用的东西,但我无法找到我所有的问题。或多或少,我正在为一个网站编写一个后端,允许用户(我)发布故事,然后保存到MySQL数据库(UTF-8)供以后使用。然后,我在前端有一个页面,其中显示了所说的故事,并尝试将P标记和BR标记带回来,以使格式看起来更美观 在保存故事内容时,我使用了一个“escape”函数将用户可能输入的所有HTML标记转换为字符串的一部分,而不是代码。我已经找到了一种方法,不管它有多草率,都可以通过以下功能带回标记:以SQL段落和空行为例(PHP、CSS、$MySQL),php,html,mysql,css,str-replace,Php,Html,Mysql,Css,Str Replace,我在这里浏览了一段时间,虽然我发现其中有很多有用的东西,但我无法找到我所有的问题。或多或少,我正在为一个网站编写一个后端,允许用户(我)发布故事,然后保存到MySQL数据库(UTF-8)供以后使用。然后,我在前端有一个页面,其中显示了所说的故事,并尝试将P标记和BR标记带回来,以使格式看起来更美观 在保存故事内容时,我使用了一个“escape”函数将用户可能输入的所有HTML标记转换为字符串的一部分,而不是代码。我已经找到了一种方法,不管它有多草率,都可以通过以下功能带回标记: function
function set_pars($string) {
return "<p>" . str_replace("\r\n", "</p><p>", $string) . "</p>";
}
函数集\u pars($string){
返回“”;
}
由于字符串开头没有\n,结尾没有\r(如果我能正确理解这两个字符的话),我不得不在开头和结尾添加它们。我还没有找到为返回的空行添加BR的方法。当我把P标签设置为“height:20px”时,我觉得自己很聪明,直到我有一段超过一行的文字。。。我相信有人会从中得到很好的笑声
我之所以选择事后做样式设计,而不是直接将它们添加到DB中,是为了在处理故事时不必看到丑陋的标签模型(虽然在我写这篇文章的过程中,我突然想到,在将检索到的故事填充到文本区域之前,我可以删除它们。不过,似乎没有必要来回重复。)有什么能帮助我理解并使这篇文章成功!提前感谢您提供任何关于这个主题的信息
如果我的漫谈已经超出了我想说的要点:
你好,我是第一行
你好,我是第二行
像这样:
<p>Hello I am the first line.</p>
<br />
<p>Hello I am the second line.</p>
你好,我是第一行
你好,我是第二行 这是我最终使用的最后一个函数,它工作得非常完美:
function set_pars($string) {
$string = str_replace(array("\n\r","\n","\r"), array("<br />","<p>","</p>"), $string);
return "<p>" . $string . "</p>";
函数集\u pars($string){
$string=str_replace(数组(“\n\r”、“\n”、“\r”)、数组(“
”、“”、“”)、$string);
返回“”$string.”;
}首先用
替换\r\n\r\n
,然后在生成的字符串上,按照现在的方式执行\r\n
替换
当您按两次enter键在两者之间创建一个空行时,只会重复两次\r\n
Hello I am the first line.
Hello I am the second line.
上面的结果是,你好,我是第一行。\r\n\r\nHello,我是第二行。
我不明白为什么您要使用
来分隔已包含在
标记中的内容。如果您只需要在段落之间留出更多空间,只需在p
标记中添加边距即可,您可以执行str\u替换(“\r\n\r\n”、“
”、$string)替换两行之间的空行。只要输入两次就行了新的行字符。我确实尝试了边距,但是空p没有空间,因此忽略了这些行。让我给您的其他建议试试,谢谢。对不起,您应该用<代码> < /P> < BR/> < P> < /代码>代替<代码> > \\r\n\r\n>代码>而不是仅< c >。ode>
。我贴了一个带解释的答案。就是这样!我明白了,太棒了!非常感谢你。另一种方法是允许多行中断,将所有\r
替换为
,将\n
替换为,然后将所有
替换为
e> 。如果有人想要相同的功能,函数集\u pars($string){$string=str\u replace(数组(“\n\r”、“\r”、“\n”)、数组(“
”、“p>”、“”)、$string);返回“”$string。”;