phpbar.de logo

Mailinglisten-Archive

[php] datei einlesen, \" ersetzen

[php] datei einlesen, \" ersetzen

LB lsblsb at gmx.de
Die Mar 29 10:49:27 CEST 2005


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