У меня длинный текст извлекается с помощью file_get_contents()
. Текстовый файл содержит информацию в следующем формате:
---
Description:
---
Some description here, with long text sentences.
---
Part 1
---
Information with part 1 in this section followed by path 2.
Теперь я хочу стилизовать информацию между ---
, например, я хотел бы сделать "описание" и "часть 1" полужирным шрифтом и отобразить остальное в виде простого текста.
Я думаю, что это может быть достигнуто с помощью preg_match. Но я хотел бы знать, можно ли использовать любой другой метод.
Следующее должно работать:
preg_replace('/---(.*?)---/s', '<strong>$1</strong>', $text);
Выражение фиксирует что-либо между ----
парами. $1
в шаблоне замены указывает на обратную связь - в нем содержится то, что было сопоставлено первой группой захвата. Модификатор s
делает .
также соответствуют новостям.
Если вы также хотите удалить пробелы, вы можете сделать это:
preg_replace('/---\s*(.*?)\s*---/s', '<strong>$1</strong>', $text);
Если есть вероятность того, что ---
пар происходит внутри текста, то вы можете использовать следующий шаблон вместо:
preg_replace('/---(?=\s)(\s)([^\r\n]+)(\s)---/s','<strong>$2</strong>$3', $text);
Для этого вы можете использовать регулярное выражение. Следующее будет работать, даже если у вас есть дефисы в тексте, который вы хотите выделить полужирным шрифтом.
echo preg_replace('/---(\r\n|\n|\r)([^\n\r]+)(\r\n|\n|\r)---/s', '<strong>$2</strong>$3', $text);
Например, предположим, что ваш текст:
---
Descrip---tion:
---
Some description here, with long text sentences.
---
Part 1
---
Information with part 1 in this section followed by path 2.
Вышеупомянутый код заменит это на:
<strong>Descrip---tion:</strong>
Some description here, with long text sentences.
<strong>Part 1</strong>
Information with part 1 in this section followed by path 2.
-
вне класса персонажа.
Вы также можете использовать взрыв
$expl = explode("---",$yourtext);
echo '<b>'.$expl[0].'</b>'; //**Description:**
echo $expl[1]; //Some description here, with long text sentences.
echo '<b>'.$expl[2].'</b>'; //**Part 1**
echo $expl[3]; //Information with part 1 in this section followed by path 2.
---
парами содержать дефисы?