编辑

时间:2018-04-07 23:31:50

标签: javascript php html ajax

我可以很好地将文本从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);

我希望这不会太长,但我尽量尽可能彻底。

1 个答案:

答案 0 :(得分:0)

刚刚有脑电波!

在我隐藏的textarea中,我只是插入未转换为HTML的原始代码,并且它有效!