大家好,我正在做一个项目,我需要找到任何url/链接/电子邮件,保留行刹车,用情感和文字换行代替特殊符号。所以我想知道,如果所有这些都是可能的,只有一个功能或不目前我使用这个功能的情绪
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函数和line brakes函数nl2br但是我想把这些都放在一个函数中请帮我一下
可以使用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和其他函数。当然你也可以在这个函数中使用这些函数
你可以直接调用这三个函数:
wordwrap(nl2br(emotions($text))[, $width, $break])
还可以在函数…的返回语句中使用wordwrap和nl2br
创建自定义函数
function letsDoMagic($text, $width = 75, $break = "'n") {
return wordwrap(nl2br(emotions($text)), $width, $break);
}
// And then somewere in your code
letsDoMagic($text);
这里有一个函数调用。正如我在注释中所说,PHP没有一个本地函数可以在一次调用中完成所有这些工作,这就是您可以创建自己的函数的原因:-)