【问题标题】:Some text to be bold after every line break after using nl2br使用 nl2br 后,每个换行后的一些文本都会变粗
【发布时间】:2014-11-06 23:14:45
【问题描述】:

我正在从 mysql DB 的一个名为 PostContent 的字段中获取数据,并使用作为换行符的 nl2br。我已成功获取 nl2br,但我希望在每个换行符后加粗一些文本。

在数据库中,我已将 postContent 存储为长文本,我希望输出如下:

尺寸:

Height: 134.7 mm
Width: 68.5 mm

显示和用户界面:

Display size: 11.94 cm

按键和输入法:

some text
some more text

我越来越喜欢:

Dimensions:
Height: 134.7 mm
Width: 68.5 mm

Display and User Interface:
Display size: 11.94 cm

Key Features: Should be Bold</B>
some text
some text

代码是:

$url=$_GET['url'];
$sql ="SELECT * , DATE_FORMAT( postDate,  '%d %b %Y' ) postDate FROM posts where url ='$url'";
mysql_query("SET NAMES utf8");
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$postContent=nl2br($row['postContent']);
?>
                <div class="col-md-12">
                    <p><?php echo"$postContent.";?></p>
                </div>
<?php
}
mysql_free_result($result);
mysql_close();
?>

【问题讨论】:

  • 你必须学习正则表达式并使用preg_replace
  • @the_nuts 我只是 php 的初学者
  • 我们能看到显示文本的代码吗?我有一种感觉,您可以修改您的模板或输出以加粗文本,而无需任何复杂的技术。
  • @SurrealDreams 我已经添加了上面的代码,请看一下。

标签: php html-entities nl2br


【解决方案1】:

我进行了更改以拆分标题。但是,我没有看到一种方法可以轻松地将每个尺寸放在单独的一行上。运行它,看看你是否可以忍受它。它至少应该让 oyu 接近你想要的。

<?php
$url=$_GET['url'];
$sql ="SELECT * , DATE_FORMAT( postDate,  '%d %b %Y' ) postDate FROM posts where url ='$url'";
mysql_query("SET NAMES utf8");
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$postContent=nl2br($row['postContent']);
$mydata = explode(chr(10), $postContent);

foreach($mydata as $value)
{
  echo '<div class="col-md-12">';
 echo "<p><strong>".substr($value,0,strpos($value, ':')+1)."</strong></p><p>".substr($value,strpos($value, ':')+2);
echo "</div>";
}
}
mysql_free_result($result);
mysql_close();

?>

【讨论】:

  • @Len_D 字段名我只有一个叫做 postContent 和所有段落都来自那里。
  • 啊,所以可能有几个带冒号的字符串。我知道了。让我们看看。
  • postContent 是如何存储在您的表中的?它是一个文本字段吗?数据是每行存储还是一起存储?我试图弄清楚实际数据在 $row['postContent'] 中时的样子。你能证明吗?
  • 它像文本字段一样存储为长文本,它看起来如顶部所示:尺寸:高度:134.7 毫米宽度:68.5 毫米
  • 运气不好,而且“尺寸:高度:134.7 毫米 宽度:68.5 毫米 显示屏和用户界面:显示屏尺寸:11.94 厘米 主要特点:一些文字一些文字一些文字”仅来自 postcontent
【解决方案2】:

感谢大家的大力支持。 我得到了我的问题的解决方案,所以想分享同样的问题,在 tinymce 和 html_entity_decode 的帮助下,我现在能够获得所需的输出。实际上,我在名为 tinymce 的 HTML WYSIWYG 的帮助下在数据库中插入 html 标签,并使用 html_entity_decode 渲染相同的标签。 现在使用以下代码,我可以插入任何 html 标签并使用 html_entity_decode 渲染相同的标签,而无需渲染 html 标签。

$url=$_GET['url'];
$sql ="SELECT * , DATE_FORMAT( postDate,  '%d %b %Y' ) postDate FROM posts where url ='$url'";
mysql_query("SET NAMES utf8");
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$postContent=nl2br($row['postContent']);
$content=html_entity_decode($postContent);
?>
                <div class="col-md-12">
                    <p><?php echo"$content.";?></p>
                </div>
<?php
}
mysql_free_result($result);
mysql_close();
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多