我想将以下文本转换为列表项
* Item 1
* Item 2
- item 1
- item 2
到
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
我已经做了以下正则表达式,这还不够好
$text = preg_replace('#(*\s[*.]\s*)#','<li>$0</li>', $text);
但这行不通。我不擅长制作 RE。
我在这里让问题更清楚。
文本可能包含项目符号,也可能不包含项目符号,我无法按照 atno 的建议循环遍历文件。
这是示例
* HTML *SEO * Javascript * PHP
- HTML
- SEO
-Javascript
-PHP
-HTML - SEO -Javascript -PHP
最佳答案
所以也许是这样的:
<?PHP
$text = <<<Text
* HTML *SEO * Javascript * PHP
- HTML
- SEO
-Javascript
-PHP
-HTML - SEO -Javascript -PHP
Text;
$text = preg_replace('/(\*|-)\s*([\S]+)\s*/',"<li>$2</li>\n",$text);
print $text;
?>
输出为:
<li>HTML</li>
<li>SEO</li>
<li>Javascript</li>
<li>PHP</li>
<li>HTML</li>
<li>SEO</li>
<li>Javascript</li>
<li>PHP</li>
<li>HTML</li>
<li>SEO</li>
<li>Javascript</li>
<li>PHP</li>
关于PHP格式化列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6171164/