There are two complementary reasons to use functions. One is for anything you are going to use multiple times and/or in multiple applications, so that you can just define the function once and then call it as needed -- that's the Don't Repeat Yourself reason. The second reason is simply to help with code readability, and therefore code maintenance. If you move bits of fiddly stuff into dedicated functions, you don't need all those lines of fiddly stuff in the main flow of your application, making it easier to see what that main flow is. If the functions are well named, then it's (hopefully) pretty obvious what each call is doing, so the maintainer can make a good guess if s/he needs to dive into it, or can ignore it for the current issue being looked at.
Which then starts to get you a step or two away from object-oriented PHP, using classes and their properties and methods to group related "things" together into classes, which the main code uses as needed. Maybe you'd have a ForumPost class, which might include the parseEmoticons() method among its several different methods for working with forum posts -- or it might make more sense in a more general ForumHTML "helper" class, which the ForumClass would instantiate and use if needed. Or.... 🙂