Я хочу сделать текстовое форматирование курсивом моих данных, который отражен от базы данных. В моей базе данных синонимы поля имеют более одного имени, и я получаю все в одном эхо. Например, Calappa nucifera (L.) Kuntze, Cocos Indica Royle хранятся в моем БД. Для этой зоны я заменяю ‘,’ на ‘новая строка’ и затем эхо. Я хочу показать:
Calappa nucifera (Л.) Кунце
Cocos Indica Royle
Но мой код показывает:
Calappa nucifera (L.) Кунце
Cocos Indica Royle
Мой код ниже:
echo '<div style = "margin-left: 150px;">'.str_replace(',','<br />',$row["synonyms"]).'</div>';
Если вы используете встроенный стиль в своем коде, у вас только жирный шрифт, а не курсив
затем получите первые два слова и в правильном теге span со шрифтовым стилем: курсив;
$mySino = explode( ','), $row["synonyms"]);
echo '<div style = "margin-left: 150px;">' ;
foreach ($mySino as $key => $myRow) {
$myValue= explode( ' ', $myRow, 3);
echo '<span style="font-style: italic;">' .
(isset($myValue[0]) ? $myValue[0] : '') .
' ' . (isset($myValue[1]) ? $myValue[1] : '' ) .
'</span> ' .( isset($myValue[2]) ? $myValue[2] : '') . '<br />';
}
echo '</div>' ;
Я не уверен, если вы спрашиваете о каком-то обработчике BBCode,
<?php
function parse($value) {
$findAndReplace = [
'[br]' => '<br>',
'[i]' => '<i>',
'[/i]' => '</i>',
'[b]' => '<strong>',
'[/b]' => '</strong>'
];
return str_replace(array_keys($findAndReplace), array_values($findAndReplace), $value);
}
$str = '[b][i]Calappa nucifera[/i] (L.) Kuntze[br][br][i]Cocos indica[/i] Royle[/b]';
echo parse($str);
?>
Выход
Через я предлагаю использовать что-то вроде Parsedown