使用file_get_content检索样式文本

时间:2014-04-13 17:39:14

标签: php html css parsing

我使用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来实现。但我想知道是否也可以使用任何其他方法。

3 个答案:

答案 0 :(得分:2)

以下内容应该有效:

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);

Regex101 Demo

答案 1 :(得分:0)

您也可以使用爆炸

$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.

答案 2 :(得分:0)

您可以使用正则表达式执行此操作。即使您想要加粗的文本中有连字符,以下内容也会起作用。

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.