Mailinglisten-Archive |
> 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