Gå til innhold

[LØST]hvilken mode med fopen?


Anbefalte innlegg

Jeg skal bruke funksjonen fopen, og ønsket var å skrive til begynnelsen av filen uten å slette innholdet som er der fra før. Er det jeg som bare tuller nå eller går ikke dette?

 

r, bare read

r+, starter på begynnelsen men sletter innholdet som er der fra før

w, fjerner innhold

w+, fjerner innhold

a, skriver til slutten

a+, skriver til slutten

x, lager bare ny fil

x+, lager bare ny fil

 

Klikk for å se/fjerne innholdet nedenfor
Modes Description

r Read only. Starts at the beginning of the file

r+ Read/Write. Starts at the beginning of the file

w Write only. Opens and clears the contents of file; or creates a new file if it doesn't exist

w+ Read/Write. Opens and clears the contents of file; or creates a new file if it doesn't exist

a Append. Opens and writes to the end of the file or creates a new file if it doesn't exist

a+ Read/Append. Preserves file content by writing to the end of the file

x Write only. Creates a new file. Returns FALSE and an error if file already exists

x+ Read/Write. Creates a new file. Returns FALSE and an error if file already exists

 

Noen som har en glup idè om hvordan dette gjøres?

Endret av alec1
Lenke til kommentar
Videoannonse
Annonse

shadow0: fwrite skriver ved file pointeren. starter file pointeren i starten av filen skriver man over det som ligger der fra før. man er nødt til å lagre informasjonen som ligger der. skrive det man skal og legge til informasjonen som lå der. til dette ville jeg brukt file_get_contents og file_put_contents som beskrevet ovenfor.

 

eventuelt:

 

function toFrontOfFile($filename, $input)
{
 $temp = file_get_contents($filename);
 $input = $temp.$input;
 file_put_contents($filename, $input);
}

Endret av grimjoey
Lenke til kommentar

grimjoey: Skjønte ikke helt det der. Her er koden jeg bruker, hadde du giddet å vise litt mer? :)

 

<?php
$text1 = $_POST["text1"];
$text2 = $_POST["text2"];
if(!$fil = fopen("dinfil.txt","w"))
{
die("Kunne ikke opne filen");
}
$text = $text1 . $text2;
if(!fwrite($fil,$text))
{
die("Kunne ikke skrive til fil...");
}
echo "dinfil.txt er nå oppdatert";
fclose($fil);
?>

Lenke til kommentar
<?php
if (!is_writable('dinfil.txt')) die('Kan ikke skrive til filen');
$text1 = $_POST["text1"];
$text2 = $_POST["text2"];
$text = file_get_contents('dinfil.txt') . $text1 . $text2;
file_put_contents('dinfil.txt', $text);
echo "dinfil.txt er nå oppdatert";
?>

Lenke til kommentar

Jeg har brukt denne koden. Sikkert ikke optimal men... ;)

<?php
$fil = "filen/du/vil/bruke.txt";
$gammelt_innhold = file($fil);
$text1 = $_POST["text1"];
$text2 = $_POST["text2"];
$nytt_innhold = $text1.$text2.$gammelt_innhold;

$fopen = fopen($fil, "w");
fputs($fopen, $nytt_innhold);
fclose($fopen);
?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...