我正在尝试使用我的mysql数据库替换文本表情符号和图像版本
我有以下代码:
<?php
function bbcodeParser($bbcode) {
$sql = mysql_query("SELECT * FROM smileys");
while( $smiley = mysql_fetch_array($sql) ) {
$match[$smiley['match']] = $smiley['match'];
$replace[$smiley['match']] = "<img style='max-height: 25px; max-width: 25px;' src='" . $smiley['replace'] . "' />";
}
/* Parse */
$bbcode = preg_replace($match, $replace, $bbcode);
/* Return parsed contents */
return $bbcode;
}
?>
但是当我使用
时bbcodeParser(“这是一个测试:)”);
没有显示任何内容,甚至没有显示基本文本
我的数据库是:
" match | Replace "
--------------------------------------------------------------
" :) | http://mysite.com/images/smileys/icon_e_smile.gif "
" XD | http://mysite.com/images/smileys/icon_lol.gif "
etc....
答案 0 :(得分:3)
匹配数组中的值不是有效的preg模式。改为使用str_replace。
$bbcode = str_replace($match, $replace, $bbcode);
或者您可以放弃构建$ match数组并使用
$bbcode = str_replace(array_keys($replace), array_values($replace), $bbcode);
答案 1 :(得分:2)
$match
应该是模式字符串(或模式字符串数组)。这里似乎是一个具有等效键和值的数组(为什么?!)。