I wanted to put some nice looking smileys in my chat on my site, but unfortunately the "<3" array to put a heart smiley in my chat doesn't work for some reason, all the other ones work fine, I think the "<" is causing this problem. But I don't know how to fix this, take a look in the code below:
$patterns = array(':)', ':D', ':p', ':P', ':(', '(aapje)', '8)', '<3');
$replacements = array('<img src="smiles/smile.gif"/>', '<img src="smiles/bigsmile.png"/>', '<img src="smiles/tongue.png"/>', '<img src="smiles/tongue.png"/>', '<img src="smiles/sad.png"/>', '<img src="smiles/aapje.png"/>', '<img src="smiles/nerd.png"/>', '<img src="smiles/love.png"/>');
$message = str_replace($patterns, $replacements, $message);
code update
$patterns = array(':)', ':D', ':p', ':P', ':(', '(aapje)', '8)', '/</3', '(l)');
$replacements = array('<img src="smiles/smile.gif"/>', '<img src="smiles/bigsmile.png"/>', '<img src="smiles/tongue.png"/>', '<img src="smiles/tongue.png"/>', '<img src="smiles/sad.png"/>', '<img src="smiles/aapje.png"/>', '<img src="smiles/nerd.png"/>', '<img src="smiles/love.png"/>', '<img src="smiles/love.png"/>');
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
$blankexp = "/^\n/";
$message = htmlentities(strip_tags($_POST['message']), ENT_QUOTES);
if (!preg_match($blankexp, $message)) {
if (preg_match($reg_exUrl, $message, $url)) {
$message = preg_replace($reg_exUrl, '<a href="'.$url[0].'" target="_blank">'.$url[0].'</a>', $message);
}
$message = str_replace($patterns, $replacements, $message);
Thx and Grts.
It may be due to <
sign. Try html entity for <
- use <
Following code should work:
$message = htmlspecialchars("Love Smiley <3");
$patterns = array(':)', ':D', ':p', ':P', ':(', '(aapje)', '8)', '<3');
$replacements = array('<img src="smiles/smile.gif"/>', '<img src="smiles/bigsmile.png"/>', '<img src="smiles/tongue.png"/>', '<img src="smiles/tongue.png"/>', '<img src="smiles/sad.png"/>', '<img src="smiles/aapje.png"/>', '<img src="smiles/nerd.png"/>', '<img src="smiles/love.png"/>');
$message = str_replace($patterns, $replacements, $message);
echo $message;