PHP Regex在BBCode标签之间获取文本

时间:2012-03-09 20:39:21

标签: php regex

我需要有关以下PHP代码的帮助:

在给定字符串中每次出现BBCode标签[code]和[/ code]之间获取文本,这样我就可以用nbsp字符替换空格'。

长话短说,我不能用CSS或DOM来做这件事,我需要在服务器上这样做。

#[code](。*?)[/ code]#似乎只有在起始和结束标签之间没有中断(或换行符)时才会起作用.... :(

1 个答案:

答案 0 :(得分:4)

我认为你正在寻找类似这样的东西

<?php
preg_match_all("/\[code\](.*?)\[\/code\]/ism", $search, $match);

悬停,我建议你改用BBcode解析器


要使用&nbsp;替换所有空格,只需使用preg_replace_callback

即可
<?php
$text = preg_replace_callback("/\[code\](.*?)\[\/code\]/ism", function($match) {
     return str_replace(" ", "&nbsp;", $match[1]);
}, $search);