Üdv!
Adott egy php kód:
$loadcontent = $directory.'/serverconfig.cfg';
if($_POST['save_file']) {
$savecontent = stripslashes($_POST['savecontent']);
$fp = @fopen($loadcontent, "wb");
if ($fp) {
fwrite($fp, $savecontent);
fclose($fp);
}
}
$fp = @fopen($loadcontent, "r");
$loadcontent = fread($fp, filesize($loadcontent));
$loadcontent = htmlspecialchars($loadcontent);
fclose($fp);
Ezzel szerkesztem a fájlt, ami tökéletesen meg is nyitja.
Ám a mentésnél nem töri meg a sorokat, csak 'rn'-t tesz a sorok közé, tehát nem értelmezi a /r/n-t. Már mindenhol kerestem megoldást, de nem találtam.
Ha valaki tudna segíteni megköszönném!
Üdv!
- 1023 megtekintés
Hozzászólások
file_get_contents()
file_put_contents()
t
- A hozzászóláshoz be kell jelentkezni
$loadcontent = $directory.'/config.cfg';
if($_POST['save_file']) {
file_put_contents($loadcontent, $_POST['savecontent']);
}
$loadcontent = file_get_contents($loadcontent);
Sajnos ugyan az a probléma.
a forrás így néz ki:
param1="auto"
param2="none"
...
És a szerkesztés után:
ha:
stripslahes($_POST['savecontent']);
akkor:
param1="auto"rnparam2="none"rn
ha csak siman:
$_POST['savecontent'];
akkor:
param1=\"auto\"\r\n\param2=\"none\"\r\n\
Mindkét megoldás esetén ezt adja. Nem akarja az igazat.
- A hozzászóláshoz be kell jelentkezni
stripslashes leszedi a \ jeleket, ahogy azt kell neki. Miert meglepo, hogy akkor \r\n is eltunik?
- A hozzászóláshoz be kell jelentkezni
Az oké, hogy leszedi, de ha anélkül volt, akkor sem értelmezte a php. Lent leírtam a megoldást!
Üdv!
- A hozzászóláshoz be kell jelentkezni
Sikerült megoldani!
A megoldás pedig:
$breakline=str_replace('\r\n', "\r\n", $text);
Nagyon fontos, hogy melyik idézőjelet használjuk, mert ebben az esetben nem mindegy!
(Weblaboron találtam egy régi cikket és abban olvastam)
A teljes kód pedig:
$loadcontent = $directory.'/config.cfg';
if($_POST['save_file']) {
$text=$_POST['savecontent'];
$breakline=str_replace('\r\n', "\r\n", $text);
file_put_contents($loadcontent, stripslashes($breakline));
}
$loadcontent = file_get_contents($loadcontent);
- A hozzászóláshoz be kell jelentkezni