Mam problem. Mam formular do kteryho se napise nakej text a to se pak ulozi do souboru. Problem je v tom, ze kdyz se v tom textu nachazi " (uvozovky), tak je to zapise jako \".
Zkousel sem to prepsat pomoci ereg_replace(), ale nedari se.
pri testu ve scriptu:
$text = "\"";
$fp = fopen("file.txt","w");
fwrite($handle,$text);
fclose($handle);
to ulozi samotnou uvozovku bez backslashe, ale kdyz tam promenna text jde z formulare, tak ji to ulozi jako \". A ja nevim proc.
Diky
Je to proto, ze data z formularu se automaticky oslashuji (nevim jak to jinak prelozit), takze vsude se misto " da \". To zajistuji tzv. "magic quotes", coz je vlastnost PHP, ktera musi byt zapnuta v php.ini (a PHP musi byt zkompilovano s podporou teto vlastnosti). Tady na WZ.cz to viditelne zapnute je, takze proto se pred uvozovky (jakozto potencialne nebezpecny a zneuzitelny znak) hazi zpetne lomitko.
Dulezite je, ze se to da celkem jednoduse a pohodlne odstranit:
$_POST["text"] = stripslashes($_POST["text"]);
... a je to :)