phpbar.de logo

Mailinglisten-Archive

[php] datei einlesen, \" ersetzen

[php] datei einlesen, \" ersetzen

LB lsblsb at gmx.de
Die Mar 29 10:36:52 CEST 2005


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