When you’r used to one programming language and start learning a new one you sometimes miss some features from the former. That happened to me a couple of years ago when we started using Roxen at work. What I missed was the trim functions from PHP. Sure, Pike and RXML can trim strings from whitespace but the beauty of
trim in PHP is that you can trim characters as well as whitespace. And to my knowledge there’s no equivalent to
trim – that is only trim the left and right side respectively of the string.
So I wrote a Pike module that did that and also created an RXML tag of it. Just yesterday I rewrote that code since I do think I’ve become a better programmer and have come to learn Pike a lot better since my first try.
And I also wrote a method to shorten a string from the center and out, i.e.
So here are some examples of usage:
- import .trim;
- string path = “/this/is/a/path/”;
- write(“%s\\n”, rtrim(path, “/”));
- // Will output: /this/is/a/path
- write(“%s\\n”, trim(path, “/”));
- // Will output: this/is/a/path
- string long_str = “This is some string that’s too long for us”;
- write(“%s\\n”, ctrim(long_str, 20));
- // Will output: This is…for us
And here’s the RXML implementation:
- <trim right=“” char=“/”>/this/is/a/path/</trim>
- <!– /this/is/a/path –>
- <trim center=“” length=“20”>This is some string that‘s too long for us</trim>
- <!– This is…for us –>
And that’s that.