我想在我的网站上的聊天中放置一些漂亮的笑脸,但遗憾的是,在我的聊天中放置一个心脏笑脸的“< 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);
代码更新
$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和Grts。
答案 0 :(得分:4)
可能是<
符号所致。试试<
的html实体 - 使用<
以下代码应该有效:
$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;
答案 1 :(得分:1)
尝试将<
更改为<
- 我想您的代码正在尝试将其后的任何内容解析为标记。
答案 2 :(得分:0)
使用<
代替<
:
$message = htmlspecialchars("I love you!!! <3 <3 <3"); // defining message
$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;