【问题标题】:Textarea input / MySQL insert / Formatted DisplayTextarea 输入 / MySQL 插入 / 格式化显示
【发布时间】:2012-11-30 15:27:17
【问题描述】:

我有一个不知道如何解决的问题。本质上,我的表单上有一个文本区域,允许用户以这种格式输入数据:

Windows XP Home and Professional<br />(32 and 64 bit)

Windows 7 Home and Professional<br />(32 and 64 bit)

我可以将它插入我的数据库并在 PHP 中使用 nl2br 毫无问题地检索/显示它。但是,我需要使用一些 HTML 来格式化输出。我基本上需要输出在 HTML 中看起来像这样:

<p class="smallText">Windows XP Home and Professional<br />(32 and 64 bit)</p>
<p class="smallText">Windows 7 Home and Professional<br />(32 and 64 bit)</p>

基本上,当只有一次退货时,我需要 nl2br 为我处理的 br 标签。但是在有双回车的地方,我需要把br转换成开闭p。

我真诚地感谢有人能提供任何见解!谢谢!

【问题讨论】:

  • 你考虑过使用
    标签而不执行nl2br吗?

标签: php html mysql format textarea


【解决方案1】:

假设文本输入正确,并且您用作段落指示符的两个换行符之间没有多余的空格/空格:

$txt = "Windows blah blah blah \n\n blah blah 64 bit)";
$nlbr = nl2br($txt);
$fixed = str_replace("<br /><br />", "</p><p>", $nlbr);
echo "<p>$fixed</p>";

【讨论】:

  • 感谢您的快速回复!奇怪,但它似乎仍然不适合我。这是我的 PHP:$SYSTEM_REQUIREMENTS = nl2br($record['SYSTEM_REQUIREMENTS']); $fixed = str_replace("&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;", "&lt;/p&gt;&lt;p class=\"supportedPlatforms\"&gt;", $SUPPORTED_PLATFORMS); echo "&lt;p&gt;$fixed&lt;/p&gt;" 当我查看页面源时,我仍然看到:Windows Vista Basic / Premium / Business / Enterprise / Ultimate&lt;br /&gt; (32 and 64 bit)&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; Windows 7 Basic / Premium / Professional / Enterprise / Ultimate&lt;br /&gt; (32 and 64 bit)&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;
  • 我应该补充一点,我注意到 br 标签之间出于某种原因有空格。我还尝试在我的 str_replace (ie: "&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; 中匹配它,再次感谢您!
  • 发现问题。出于某种原因,我必须在 str_replace 中识别新行:str_replace("&lt;br /&gt;\n&lt;br /&gt;", "&lt;/p&gt;&lt;p&gt;", $nlbr); 再次感谢您!
猜你喜欢
  • 1970-01-01
  • 2023-03-19
  • 2013-07-29
  • 2016-10-09
  • 2015-06-07
  • 1970-01-01
  • 2017-10-10
  • 2011-10-08
  • 1970-01-01
相关资源
最近更新 更多