In Xojo there is a handy function I use quite a lot for getting substrings between given delimiters from a piece of text, it is:
NthField(text, delimiter, fieldnumber)
Imagine you have the following text “1/2/3/4”, NthField( “1/2/3/4”, “/”, 3 ) will return 3, that is the third substring between the “/” delimiters. It is that simple! This function works great in Xojo as long as the text is not too big. A few years ago I was porting a Xojo function to PHP that used NthField() so I decided to port the whole function. This is the PHP equivalent:
function nthfield($text, $delimiter, $fieldnumber) {
$data = explode($delimiter, $text . $delimiter );
return $data[$fieldnumber-1];
}
It is that simple, now you have the exact same NthField() in PHP. That function is fully accurate, I have been using it everywhere in my site for years.
Next I needed the related function to count the number of fields for a given delimiter:
CountFields(text, delimiter)
For the sample text we used above, “1/2/3/4”, CountFields( “1/2/3/4”, “/” ) would return 4, that is, the number of fields enclosed by the “/” delimiter. This is the PHP equivalent:
function countfields($text, $delimiter) {
return count(explode($delimiter, $text));
}
As you can see the both functions use simple PHP array functions and since NthField() is slow in Xojo when the text is big, it would be simple to rewrite it 🙂
—
Stan Busk – Software Engineer
at www.maxprog.com