Mailinglisten-Archive |
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.
php::bar PHP Wiki - Listenarchive