我正在处理textarea用户输入,其中保留了一些字符,例如:
[ means <h1>
] means </h1>
{ means <p>
} means </p>
示例用户输入:
[Hello World title]
{hello worlds paragraph
and paragraph continues after line break}
示例系统显示:
<h1>Hello World title<h1>
<p>hello worlds paragraph<br/>
and paragraph continues after line break</p>
所有HTML标记都从用户输入中过滤掉,PHP脚本将替换前端的这些字符。
我想使用PHP函数“nl2br”用&lt; br /&gt;替换换行符。
问题是{
和}
字符之间的换行符应由<br />
替换。
另外,我需要考虑用户是否使用{}
输入多个段落。
答案 0 :(得分:3)
<?php
$input="{user input
user input}
newlines that aren't replaced";
function format_paragraph($m){
return '<p>'.nl2br($m[1]).'</p>';
}
echo preg_replace_callback("/\{(.*)\}/s",format_paragraph,$input);
?>
测试代码here
此示例将添加两个p标记,并在一次替换中替换换行符。