speedy33417 Posted April 29, 2010 Share Posted April 29, 2010 I have a website that's visited by iPhone and iPhone Touch mostly. The site takes comments and has a self-built forum. The iPhone has its own emoticons called emoji. When used in text they look like this:  Comments and posts are stored with the real HTML code for the icon, such as above. What I'm trying to find a solution for is replacing them with image tags when displayed. For example I have user comment in my database like so. $message = "This website is cool!& #57612; Keep up the good work!"; // Here comes the regex magic... $message = "This website is cool!<img src=\"http://www.mysite.com/images/emoji123.png\" /> Keep up the good work!"; The problem is that there are over 500 icons. I was thinking to use two arrays to store both formats: $emoji[123] = "& #57612;"; $html[123] = "<img src=\"http://www.mysite.com/images/emoji123.png\" />"; So if I find a emoji script in the text then I check which one it is from my array and then replace it with the corresponging html versio in the text. The problem is that I suck at Regex, and would really welcome any help that you can throw at me. Thanks! Link to comment https://forums.phpfreaks.com/topic/200106-using-regex-to-deal-with-emoji-icons/ Share on other sites More sharing options...
cags Posted April 29, 2010 Share Posted April 29, 2010 Many possible solutions, here's one off the top of my head... function regify( $input ) { return '#\b'.preg_quote( $input, '#' ) . '\b#'; } function imagify( $input ) { return '<img src="http://www.mysite.com/images/' . $input . '" />'; } $tags = array ('& #57612', '& #somethingelse'); $files = array('emoji123.png', 'emoji456.png'); $patterns = array_map( $tags , 'regify' ); $replacements = array_map( $files, 'imagify' ); $output = preg_replace( $patterns, $replacements, $input ); Disclaimer: I just got up, this may not work as is . Link to comment https://forums.phpfreaks.com/topic/200106-using-regex-to-deal-with-emoji-icons/#findComment-1050361 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.