【发布时间】:2012-03-09 20:39:21
【问题描述】:
我需要有关以下 PHP 代码的帮助:
获取给定字符串中每次出现的 BBCode 标记 [code] 和 [/code] 之间的文本,以便我可以将空格 ' ' 替换为 nbsp 字符。
长话短说,我不能使用 CSS 或 DOM 来执行此操作,我需要在服务器上执行此操作。
#[code](.*?)[/code]# 似乎只有在开始和结束标记之间没有换行符(或换行符)时才有效.... :(
【问题讨论】:
我需要有关以下 PHP 代码的帮助:
获取给定字符串中每次出现的 BBCode 标记 [code] 和 [/code] 之间的文本,以便我可以将空格 ' ' 替换为 nbsp 字符。
长话短说,我不能使用 CSS 或 DOM 来执行此操作,我需要在服务器上执行此操作。
#[code](.*?)[/code]# 似乎只有在开始和结束标记之间没有换行符(或换行符)时才有效.... :(
【问题讨论】:
我认为您正在寻找类似的东西
<?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(" ", " ", $match[1]);
}, $search);
【讨论】: