Mailinglisten-Archive |
LB schrieb: > Lutz Zetzsche schrieb: > >> Hi, >> >> LB schrieb: >> >> >>> ich glaube ich habe den fehler. >>> ich musste noch irgendwo bei m testen die erste version: >>> >>> $csv = preg_replace("/\\\"(.*)\\\"/", "$1", $csv); >>> >>> stehen gehabt haben. >>> >>> hier findet er mit .* wohl auch die backslashes >>> >> >> >> na, dann ging meine Vermutung ja in die richtige Richtung. Ich verstehe >> nicht besonders viel von regulären Ausdrücken, aber diese >> Referenz-Variable $1 könnte Dir den zusätzlichen Backslash in die Daten >> geschmuggelt haben. Das kannst Du ja ganz einfach herausbekommen. ;-) >> >> >> Viele Grüße >> >> Lutz >> >> >> > hallo nochmal, > > also nun hab ich nochmal rumgetestet. folgendes: > > ich lese eine datei ein, in der steht: "A";"B";"C" > > echo($csv); //ausgabe: \"A\";\"B\";\"C\" > > nun mache ich: > $csv = preg_replace('/\\"([^(\")\r\n]*)\\"/','$1',$csv); > ergibt: > echo($csv); //ausgabe: \"A\";\"B\";\"C\" > > wenn ich jedoch preg_replace('/\\\\"([^(\\\")\r\n]*)\\\\"/','$1',$csv); > mache, gehts. > da scheinen irgendwie mehr backslashes drin zu stehen, als wenn ich > direkt einen string in das script schreibe, der genauso aussieht wie > die ausgabe von dem eingelesenen ($csv = "\"A\";\"B\";\"C\""), denn da > funktioniert es mit dem ersten preg-ausdruck. > > > ok. ich spreche mich schuldig. habe doch tatsächlich an anderer stelle irgendwann einmal die quotes gebackslasht. sorry.
php::bar PHP Wiki - Listenarchive