我在数据库中输入两段文字
first paragraph
second paragraph
我将它们存储在我的数据库中,当我使用nl2br
在前端显示它时,它会完美显示。
我希望我的第一段是粗体,第二段应该是正常的。
我尝试使用strpos
在<br>
之后找到nl2br
标记的位置,以便删除第一段,但我没有成功。
失败的代码是
echo strpos(nl2br($row['article']), "<br>");
但我没有获得<br>
代码的位置
我从eddie得到了正确的答案,他删除了它,但我在这里更新答案
$str='first paragraph
second paragraph';
foreach(explode("\n",) as $key => $val) {
if($key == 0){
echo'<b>';
}
echo $val;
echo'<br>';
if($key == 0){
echo '</b>';
}
}
答案 0 :(得分:0)
请勿将nl2br
用于您要查找的结果类型。只需使用带有preg_split
的正则表达式规则将字符串拆分为数组,然后对数组中的第一项执行操作。这是测试代码:
// Set the test data.
$test_data = <<<EOT
first paragraph
second paragraph
EOT;
// Split the test data into an array of lines.
$line_array = preg_split('/(\r?\n){1,2}/', $test_data);
// Roll through the line array & act on the first line.
$final_text = '';
foreach ($line_array as $line_key => $line_value) {
if ($line_key == 0) {
$line_value = "<b>" . $line_value . "</b>";
}
$final_text .= $line_value . "<br />\n";
}
// Dump the line array for debugging.
echo '<pre>';
print_r($line_array);
echo '</pre>';
// Echo the final text.
echo '<pre>';
echo htmlentities($final_text);
echo '</pre>';
die();
行数组的转储输出如下:
Array
(
[0] => first paragraph
[1] => second paragraph
)
使用htmlentities
测试输出以显示HTML方式:
<b>first paragraph</b><br />
second paragraph<br />
答案 1 :(得分:0)
尝试:
$first_line = explode(PHP_EOL, $str)[0];
$new_str = str_replace($first_line,'<b>'.$first_line.'</b>',nl2br($str));