大家好,我正在开展一个项目,我需要找到任何网址/链接/电子邮件,保留行刹车,用情感替换特殊符号以及wordwrap。所以我想知道,如果所有这些事情只有一个功能可能,或者目前我没有使用这个功能的情感
function emotions($text) {
$icons = array(
':)' => '<img src="smiles/smilee.png" class="icon_smile" title="smiling :)"/>',
':d' => '<img src="smiles/lol.gif" class="icon_smile" title="Laughing :d"/>',
';)' => '<img src="smiles/wink.png" class="icon_smile" title="Wink ;)"/>',
':p' => '<img src="smiles/tongue.png" class="icon_smile" title="Tounge :p"/>',
':(' => '<img src="smiles/sad.png" class="icon_smile" title="Sad face :("/>',
':o' => '<img src="smiles/shock.png" class="icon_smile" title="Shocking :o"/>',
':|' => '<img src="smiles/straight.png" class="icon_smile" title="straight :|"/>',
'<3' => '<img src="smiles/heart.png" class="heart" title="Heart <3"/>',
'::s' => '<img src="smiles/sexy.png" class="icon_smile" title="Sexy <s"/>',
':D' => '<img src="smiles/lols.gif" class="icon_smile" title="lol :D"/>',
':((' => '<img src="smiles/cry.gif" class="icon_smile" title="crying :(("/>',
':X' => '<img src="smiles/silent.gif" class="icon_smile" title="sealed lips :X"/>',
':B' => '<img src="smiles/bla.gif" style="width:29px;vertical-align:middle;" title="bla bla :B"/>',
':C' => '<img src="smiles/coll.gif" style="width:24px;vertical-align:middle;" title="coll me :C"/>'
);
return strtr($text, $icons);
}
?>
我知道对于wordwrap我可以使用函数wordwrap和线制动器nl2br但我希望所有这些在一个功能中请帮助我这个
答案 0 :(得分:1)
您可以使用str_replace(),array_keys()和array_values()。
function emotions($text) {
$icons = array(
':)' => '<img src="smiles/smilee.png" class="icon_smile" title="smiling :)"/>',
':d' => '<img src="smiles/lol.gif" class="icon_smile" title="Laughing :d"/>',
';)' => '<img src="smiles/wink.png" class="icon_smile" title="Wink ;)"/>',
':p' => '<img src="smiles/tongue.png" class="icon_smile" title="Tounge :p"/>',
':(' => '<img src="smiles/sad.png" class="icon_smile" title="Sad face :("/>',
':o' => '<img src="smiles/shock.png" class="icon_smile" title="Shocking :o"/>',
':|' => '<img src="smiles/straight.png" class="icon_smile" title="straight :|"/>',
'<3' => '<img src="smiles/heart.png" class="heart" title="Heart <3"/>',
'::s' => '<img src="smiles/sexy.png" class="icon_smile" title="Sexy <s"/>',
':D' => '<img src="smiles/lols.gif" class="icon_smile" title="lol :D"/>',
':((' => '<img src="smiles/cry.gif" class="icon_smile" title="crying :(("/>',
':X' => '<img src="smiles/silent.gif" class="icon_smile" title="sealed lips :X"/>',
':B' => '<img src="smiles/bla.gif" style="width:29px;vertical-align:middle;" title="bla bla :B"/>',
':C' => '<img src="smiles/coll.gif" style="width:24px;vertical-align:middle;" title="coll me :C"/>'
);
return str_replace(array_keys($icons), array_values($icons), $text);
}
您应该对函数的结果使用nl2br和其他函数。但是当然你也可以在这个函数中使用这些函数。
答案 1 :(得分:1)
你可以完全调用3个函数:
wordwrap(nl2br(emotions($text))[, $width, $break])
您还可以在函数的return语句中使用 wordwrap 和 nl2br ...
创建自定义功能
function letsDoMagic($text, $width = 75, $break = "\n") {
return wordwrap(nl2br(emotions($text)), $width, $break);
}
// And then somewere in your code
letsDoMagic($text);
这里有1个函数调用。正如我在评论中所说,PHP没有本机函数来在一次调用中完成所有这些工作,这就是你可以创建自己的函数的原因: - )