phpbar.de logo

Mailinglisten-Archive

[php] Regex Problem (OT)

[php] Regex Problem (OT)

Marcus Strube Marcus_Strube at GMX.net
Fre Mar 12 00:48:58 CET 2004


> 1,2,'test',3,'richtig'    => true
> 1,2,'test',3,falsch      => false
> 1,2.1,'test',3,'richtig' => false

> 1,2,'test',3,'richtig'       => true
> 1,2 , 'test',3, 'richtig'    => true

> 1,2,'test',3,'richtig'        => true
> 1,2,12'test',3,'richtig'    => false
> ... bis hierhin immer eine exeption werfen!

> 1,2,'test',3,'richtig fettes essen'         => true
> 1,2,'test',3,'richtig 'fettes' essen'        => false
> 1,2,'test',3,'richtig \'fettes\' essen'      => true

> 1,2,'test',3,'$richtig = true; echo $richtig;'                       =>
true
> 1,2,'test',3,'$richtig = \'fettes essen\''
=> true
> 1,2,'test',3,'$richtig = \'"fettes" essen\''
=> true
> 1,2,'test',3,'$richtig->essen(\'fettarmes\', \'essen\', true)'    => true

Moin.
Ich weiß nicht, ob ich das jetzt alles richtig verstanden habe, aber ich hab
folgendes gemacht und es funktionierte mit den Versionen hier oben:

$csv = "1,2,'test',3,'\$richtig->essen('fettarmes', 'essen', true)'";

$regex  = "/ ^ (\d{1,3}) , (\d{1,3}) , ('[\w\s]+') , (\d{1,3}), '(.*)' $
/ix";

/*
Das funktioniert natürlich nur, wenn man wirklich davon ausgehen kann, dass
das letzte Zeichen im String ' ist.
*/

preg_match($regex,$csv,$result);

$result[5] = addslashes($result[5]);
$result[5] = "'" . $result[5] . "'";
array_splice($result, 0, 1);
$result = implode (',', $result);

echo $result;

----

VG
Marcus Strube



php::bar PHP Wiki   -   Listenarchive