tantenMedlem sedan nov. 20051 596 inlägg $nytext = $_POST["nytext"];
$filnamn = "dagbok.txt";
$filen = fopen($filnamn, "r+");
fwrite($filen, $nytext);
fclose($filen);
När jag skriver till filen så tar den bort den första raden av redan befintlig text
<h5>31/7-2006. Två dagar kvar av semestern</h5><p
och lämnar kvar >
Varför? Resten av html-formateringen i filen finns kvar, så jag blir undrande.
Vad kan jag göra?
MatteMedlem sedan aug. 20002 975 inlägg Använd 'a' istället för 'r+' i fopen().
'r+' sätter filpekaren i början av filen, och du kommer att skriva över befintlig text.
aasahMedlem sedan mars 20034 471 inlägg
Matte skrev:
Använd 'a' istället för 'r+' i fopen().
'r+' sätter filpekaren i början av filen, och du kommer att skriva över befintlig text.
Medan a:et istället lägger till den nya texten sist i filen. (Ifall du undrar.)
tantenMedlem sedan nov. 20051 596 inlägg Jag har till slut förstått att man tydligen måste öppna filen två gånger enkelt uttryckt och skillnaden på r och w och a osv, tror jag att jag kan. ;)
Men nu har jag kommit dit hän att jag skall skriva ut filen på en sida. Eftersom hela filen ska skrivas ut rakt upp och ner så trodde jag att readfile(dagbok.txt) skulle fungera bra. Och det gör det om det inte fanns "" och ' i koden. Jag hittar inte någonstans hur man gör för att stripslasha bort \ .
Så nu undrar jag går det, eller ska jag göra om det till en variabel eller sträng för att kunna sätta dit stripslash-funktionen?
Blir egentligen inte riktigt klok på om jag ska göra det redan vid skrivning.
Har ägnat hela dagen åt att läsa PHP-bibeln och provat det ena och andra ... men känner att jag behöver puff åt rätt håll. Ibland kan envishet leda rakt åt fel håll... till ingen nytta :OO
MatteMedlem sedan aug. 20002 975 inlägg Använd stripslashes på texten innan du sparar till filen.
Du kan för att hämta filinnehållet, och lägga i en variabel, använda dig av file_get_contents.
tantenMedlem sedan nov. 20051 596 inlägg Nej jag lyckas inte komma på hur jag ska göra.
Så här ser funktionen ut nu.
$filename = "dagbok.txt";
//Om man inte har PHP5, så aktiveras läs/skriv till filer-funktionen här
if (!function_exists('file_put_contents'))
{
function file_put_contents($n) {
$f=@fopen($n,"r");
if (!$f) {
return false;
} else {
fwrite($f);
fclose($f);
return true;
}
}
}
if (!function_exists('file_get_contents')) {
function file_get_contents($file)
{
if (!is_readable($file))
return false;
$contents = '';
$fp = fopen($file, 'r+');
do {
$data = fread($fp);
if ($data == '')
break;
$contents .= $data;
} while (true);
fclose($fp);
return $contents;
}
}
// om man tryckt på Spara-knappen i formuläret
if (isset($_POST['submit']))
{
// Skriver till filen
file_put_contents($filename, $_POST['nytext']) or die("Kunde inte skriva till filen!");
}
// Hämtar data från filen och sparar det i $dagbok
$dagbok = file_get_contents("$filename") or die("Kunde inte hämta filens innehåll!");
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
Måste dessvärre "tigga" om mer hjälp. :( om hur och vart man sätter in stripslashes...
stevenetMedlem sedan juni 20001 251 inlägg Ersätt
// om man tryckt på Spara-knappen i formuläret
if (isset($_POST['submit']))
{
// Skriver till filen
file_put_contents($filename, $_POST['nytext']) or die("Kunde inte skriva till filen!");
}
med
function magic_stripslashes($data) {
if (get_magic_quotes_gpc())
return stripslashes($data);
else
return $data;
}
// om man tryckt på Spara-knappen i formuläret
if (isset($_POST['submit']))
{
// Skriver till filen
file_put_contents($filename, magic_stripslashes($_POST['nytext'])) or die("Kunde inte skriva till filen!");
}
tantenMedlem sedan nov. 20051 596 inlägg Nu fungerar det. Tack så jättemycket!
Tack alla!