aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/includes/functions.php7
1 files changed, 4 insertions, 3 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index e09b01c763..0912a24207 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -777,8 +777,9 @@ function smilies_pass($message)
if(empty($smilies))
{
- $sql = "SELECT code, smile_url
- FROM " . SMILIES_TABLE;
+ $sql = "SELECT code, smile_url, LENGTH(code) as length
+ FROM " . SMILIES_TABLE . "
+ ORDER BY length DESC";
if($result = $db->sql_query($sql))
{
$smilies = $db->sql_fetchrowset($result);
@@ -787,7 +788,7 @@ function smilies_pass($message)
for($i = 0; $i < count($smilies); $i++)
{
- $orig[] = "'\B" . preg_quote($smilies[$i]['code']) . "\B'sxi";
+ $orig[] = "'(?<=.\\W|\\W.|^\\W)" . preg_quote($smilies[$i]['code']) . "(?=.\\W|\\W.|\\W$)'i";
$repl[] = '<img src="'. $board_config['smilies_path'] . '/' . $smilies[$i]['smile_url'] . '" alt="' . $smilies[$i]['smile_url'] . '">';
}