Gå til innhold

Legge inn i tekstdokument øverst


Anbefalte innlegg

Har et lite script for å legge inn nyheter på en hjemmeside. Vil ha de nyeste øverst, men de kommer nederst slik scriptet er nå. Noen som kan hjelpe meg til å få det til.

 

<?
if (empty($login))
{
exit();
}

if(strcmp($login,"xxxxxxx")==0 && strcmp($passwd,"xxxxxxx")==0)
{
?>
<? $today = date("d.m.y");?>
<?
$fp =fopen ("sider/news.txt", "aw");
fputs ($fp,"$today - $text <br><br>");
fclose ($fp);
print ("<p>Du har skrevet $text på news</p>");
?>
<a href="index.php?id=index">Tilbake</a>
<?
}
else
{
echo "Feil brukernavn og passord";
}
?>

 

Ferdig kode ble slik (for de som ikke orker å scrolle ned):

 

<?
if (empty($login))
{
exit();
}

if(strcmp($login,"xxxxxxx")==0 && strcmp($passwd,"xxxxxxx")==0)
{

$today = date("d.m.y");

$fila = file("sider/news.txt");
foreach($fila as $rad) {
$minne .= $rad;
};

$fp = fopen ("sider/news.txt", "w+");
fputs ($fp, $today . " - " . $text . "<br><br>" . $minne);
fclose ($fp);
print ("<p>Du har skrevet $text på news</p>");
?>
<a href="index.php?id=index">Tilbake</a>
<?
}
else
{
echo "Feil brukernavn og passord";
}
?>

Endret av oya
Lenke til kommentar
Videoannonse
Annonse

r+ vil ikke fungere, noe som står beskrevet i manualen:

Open for reading and writing; place the file pointer at the beginning of the file.

mao vil fila overskrives fra starten av fila.

 

for å få inn innhold øverst i en fil, må du åpne fila, lese den inn i minnet (f.eks vha file() ) og deretter skrive nytt innhold til fila fra toppen og legge inn det gamle innholdet etter dette.

Lenke til kommentar

<?
if (empty($login))
{
exit();
}

if(strcmp($login,"xxxxxxx")==0 && strcmp($passwd,"xxxxxxx")==0)
{

$today = date("d.m.y");

$minne = file("sider/news.txt");
$minne = implode("", $minne);

$fp = fopen ("sider/news.txt", "w+");
fputs ($fp, $today . " - " . $text . "<br><br>" . $minne);
fclose ($fp);
print ("<p>Du har skrevet $text på news</p>");
?>
<a href="index.php?id=index">Tilbake</a>
<?
}
else
{
echo "Feil brukernavn og passord";
}
?>

Burde gjøre susen? :p Om du har eldre PHP versjon enn 4.3.0 kan det hende den ikke funker, pga at implode'en slik den brukes her antageligvis ikke fungerer i eldre versjoner ;)

 

edit: Seriøs skriveleif i koden :p Edit2: Jævla +tegn i w'en som kom for tidlig ;)

Endret av eXZire
Lenke til kommentar

EDIT: Denne vil nå funke, men anbefaler heller at du bruker den lenger opp :p

<?
if (empty($login))
{
exit();
}

if(strcmp($login,"xxxxxxx")==0 && strcmp($passwd,"xxxxxxx")==0)
{

$today = date("d.m.y");

$fila = file("sider/news.txt");
foreach($fila as $rad) {
$minne .= $rad;
};

$fp = fopen ("sider/news.txt", "w+");
fputs ($fp, $today . " - " . $text . "<br><br>" . $minne);
fclose ($fp);
print ("<p>Du har skrevet $text på news</p>");
?>
<a href="index.php?id=index">Tilbake</a>
<?
}
else
{
echo "Feil brukernavn og passord";
}
?>

Endret av eXZire
Lenke til kommentar

join er alias for implode.. brukte det på det første skriptet, trodde da det ikke gikk pga gammel php versjon eller noe, så gikk derfor til foreach'en :p (Viste seg jo at det var en litt for rask + i "w+" ;) som var feilen, ikke implode. Må visst begynne å lese igjennom innlegg igjen gitt ;) )

 

edit: just for the record: Vil bare si at jeg personlig ville gjort ting annerledes, bl.a. tatt inn det Torbjørn sier, men jeg gadd ikke endre på hele skriptet.. ;)

Endret av eXZire
Lenke til kommentar

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

Laster...
×
×
  • Opprett ny...