Page 1 of 1

extract various texts from a string variable

Posted: Sun Mar 15, 2009 2:36 pm
by markjohnson
Ok, so here it goes:

I have a variable:

$var = ":12:3{this is a test}:5:8{this is another test}:"

Everything between : : is a separate value, which I can easily extract in an array:

$value=explode(":",$var);

I then get:

$value[0]=12
$value[1]=3{this is a test}
$value[2]=5
$value[3]=8{this is another test}

RE values like $value[1] and $value[3] with brackets, I would like to extract the number before the bracket '{' in one variable, and then all the text between the brackets {} in another variable, which should result in something like this:

$key=3
$keytext=this is a test

How can I achieve this?

I am sure this one will be dead simple for PHP experts, so many thanks in advance!

Re: extract various texts from a string variable

Posted: Sun Mar 15, 2009 3:18 pm
by Benjamin
What is the format of that string? Where is it coming from? Is it JSON?

http://us2.php.net/manual/en/function.json-decode.php

Re: extract various texts from a string variable

Posted: Sun Mar 15, 2009 3:39 pm
by markjohnson
It's a very simple string variable.

Re: extract various texts from a string variable

Posted: Sun Mar 15, 2009 3:54 pm
by Benjamin
What created it?

Re: extract various texts from a string variable

Posted: Sun Mar 15, 2009 5:00 pm
by markjohnson
I did...

It was just a simple variable:

$var = "3{this is my var}"

Anyway, here is the solution for it:

Code: Select all

$string = '3{this is a test}';
preg_match('#^(\d+){([^}]+)}$#', $string, $matches);
list(, $key, $keytext) = $matches;