On Mon, Jan 27, 2003 at 12:57:10AM +0200, Nikos Gatsis wrote:
Hi list!
I have a sting that contains some occurances of {...} sub-strings, where is
some text.
Which is the way to find and replace the {...} with an other of my own.
This sub-strings start with { and end with }.
You could try something with a regular expression like:
$new = ereg('[^{]*{([^}]*)}.*', '\\1', $oldstring);
which will match only the first word inside curly braces, or if
$oldstring contains multiple strings in curly braces, maybe:
$newarray = split('}?[^{]*{', $oldstring . '{');
and then parse the array, and you'll probably want to toss [0], as it
will contain the data before the first left-curly-brace. This method
needs a trailing left-curly-brace appended to $oldstring because the
regexp relies on it to mark the field. You could alternately turn this
around as:
$newarray = split('}[^{]*{?', '}' . $oldstring);
which is probably the cleanest way to do this, given the extent to which
you've described the data so far. Note that split() will work just fine
on multi-line arrays, including fields split over multiple lines. If
you want to process your data line-by-line, you'd need to wrap it.
The better you can predict the input data, the cleaner the code you can
use to parse it.
Learn the regexps.
--
Paul Chvostek [EMAIL PROTECTED]
Operations / Abuse / Whatever
it.canada, hosting and development http://www.it.ca/
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php