我可以很好地将文本从BBCode转换为HTML,但是我想在{{1}中编辑时,我想编辑它在HTML页面上显示的代码而不是BBCode使用AJAX。
例如,我提交<textarea>
并将其保存到我的数据库中。该页面将显示为粗体文字。当我尝试在页面上编辑它时,它会显示为[b]bold text[/b]
,然后当我保存它时,它会获取HTML标记,因为我正在使用<strong>bold text</strong>
。
要从BBCode转换为HTML,我使用:
htmlspecialchars()
字符串是从数据库中提取的文本。
我想要的是BBCode在textarea中显示,所以如果需要编辑,就会有BBCode而不是HTML标签。
这就是AJAX的注释,以帮助您理解它:
$search = array (
'/(\[b\])(.*?)(\[\/b\])/',
'/(\[i\])(.*?)(\[\/i\])/',
'/(\[u\])(.*?)(\[\/u\])/',
'/(\[ul\])(.*?)(\[\/ul\])/',
'/(\[li\])(.*?)(\[\/li\])/',
'/(\[user=)(.*?)(\])(.*?)(\[\/user\])/',
'/(\[quote\])(.*?)(\[\/quote\])/',
'/(\[code\])(.*?)(\[\/code\])/'
);
$replace = array (
'<strong>$2</strong>',
'<em>$2</em>',
'<u>$2</u>',
'<ul>$2</ul>',
'<li>$2</li>',
'<a href="../login/profile?u=$2" target="_blank">$2</a>',
'<quote>$2</quote>',
'<code>$2</code>'
);
$string = preg_replace($search, $replace, $string);
我希望这不会太长,但我尽量尽可能彻底。
答案 0 :(得分:0)
刚刚有脑电波!
在我隐藏的textarea中,我只是插入未转换为HTML的原始代码,并且它有效!