Thank you very much.

If anybody has some good links to ereg tutorials, I would love to get that
teached.

Thanks
Mirco Blitz

-----Ursprüngliche Nachricht-----
Von: Eli [mailto:[EMAIL PROTECTED] 
Gesendet: Freitag, 8. April 2005 06:40
An: php-general@lists.php.net; Webmaster
Betreff: [PHP] Re: pasring complex string question

Eli wrote:
> Webmaster wrote:
> 
>> Hello,
>> i have a string looking like this.
>>
>>  
>>
>> ## /T (KEY1)/V (VALUE1)|| ## /T (KEY2)/V (VALUE2)|| ## /V (VALUE3)/T
>> (KEY3)||
>>  
>>
>>  
>>
>> I know want to separete it in to keys and values and insert them into an
>> array.
>>
>> Note that /T always shows that teh upcoming value in() is a Key and 
>> that /V
>> always is a Value. And that the set can be flipped.
>>
>>  
>>
>> Thank you very much for helping.
>>
>> Mirco Blitz
>>
>>
> 
> It seems you complex yourself too much.. ;)
> 
> Try using regexp with the 'e' modifier:
> 
> <?php
> 
> $data="## /T (KEY1)/V (VALUE1)|| ## /T (KEY2)/V (VALUE2)|| ## /V 
> (VALUE3)/T (KEY3)||";
> 
> $data_array=array();
> preg_replace(
>     array(
>     "/\#\#\s*/T\s*\(([^\)]*)\)\s*\V\s*\(([^\)]*)\)\s*\|\|/e",
>     "/\#\#\s*/V\s*\(([^\)]*)\)\s*\T\s*\(([^\)]*)\)\s*\|\|/e"
>     ),
>     array(
>     "\$data_array['\\1']='\\2';",
>     "\$data_array['\\2']='\\1';"
>     ),
>     $data
> );
> 
> print_r($data_array);  //see if you get it as expected
> 
> ?>
> 
> I believe there's an easier way to store your data as strings (like 
> serialize), so why not using them?!
> see alse: http://www.php.net/serialize

Sorry... a little correction:

<?php

$data="## /T (KEY1)/V (VALUE1)|| ## /T (KEY2)/V (VALUE2)|| ## /V 
(VALUE3)/T (KEY3)||";

$data_array=array();
preg_replace(
     array(
     "/\#\#\s*\/T\s*\(([^\)]*)\)\s*\/V\s*\(([^\)]*)\)\s*\|\|/e",
     "/\#\#\s*\/V\s*\(([^\)]*)\)\s*\/T\s*\(([^\)]*)\)\s*\|\|/e"
     ),
     array(
     "\$data_array['\\1']='\\2';",
     "\$data_array['\\2']='\\1';"
     ),
     $data
);

print_r($data_array);  //see if you get it as expected

?>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to