• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

In Datei schreiben

ShadowsMaster

New member
Hi,

Hab wieder mal ein Problem. Ich hab mir so ein kleines Newsscript gebastelt, und hätte jetzt gerne, dass die neueren Postings immer oben sind. Weiß aber nicht, wie ich am Anfang einer Datei etwas einfügen kann. Kann mir da bitte jemand weiterhelfen?

cya
 
Hi,

tut mir leid, dass ich dir keine einfachere Variante bieten kann, aber du musst schon die gesamte Datei auslesen, die Datei löschen, den neuen Inhalt in eine neue Datei schreiben und den alten Inhalt anfügen.

mfG Enrique
 
ich werde anderes machen :)

ganz oben ein Anker z.B.:
<!--Hier gehet es weiter-->
...bla alte .bla
..........


dann in Script nach diese zeile suchen ;)
if($_ eq "<!--Hier gehet es weiter-->")
{
print "<!--Hier gehet es weiter-->\n";
print "Neue Inhalte\n";
}
print "Alte Inhalt\n";

so was
sollte schneller gehen...
gruss
 
Schnell sollte es schon gehn Oleg, aber dein Tip geht leider nicht.

Poste mal bitte genau wie das ganze geht. Hier hast den Teil des Scripts, der in die File schreibt:

<?
if ($action=="write")
{
$write = fopen("news.htm","w");
$form = "<br>
<table border=\"1\" width=\"80%\" bordercolor=\"#000000\" cellpadding=\"1\">
<tr>
<td width=\"100%\" bordercolor=\"#336699\"><b>$überschrift</b></td>
<td align=\"right\" bordercolor=\"#336699\"><small> $date </small></td>
</tr>
<tr>
<td colspan=\"2\" bordercolor=\"#336699\">$text</td>
</tr>
<tr>
<td align=\"right\" colspan=\"2\" bordercolor=\"#336699\"><small>Posted by:</small> <a href=\"main.php?section=mail.php&user=$user\" class=\"main\"><small>$user</small></a></td>
</tr>
</table>

";
fputs($write, $form);
fclose($write);
}
?>

Sag mal bitte, was ich da genau ändern muss.

Danke, cya
 
@Oleg.de :So ähnlich hab ich das auch gemeint! Nur ohne Suche, da Einfügestelle gegeben ist.

@ShadowsMaster:

Du liest den Dateiinhalt ein (siehe dein letztes thread) speicherst ihn in einer Variablen. Dann öffnest du die Datei mit
fopen("datei.dat","w+"); (öffnet Datei und löscht dabei den Inhalt).
Dann schreibst du den neuen Inhalt und dann den alten Inhalt in die Datei....FERTIG! ----->schneller als Oleg.de ('s Variante)

mfG Enrique
 
Hi,

@enrique: Danke für Antwort, aber wie lese ich die ganze File als Array ein? Mit file() kann man ja nur einzelne Zeilen einlesen, oder?
 
leider kann ich nicht viel mit php helfen
selbst noch ein anfänger
habe uberhaupt noch keins geschrieben...:)

so ein problem in perl habe ich wie ich geschrieben gelöst...
mit suche habe ich nicht korrekt ausgedrükt weil
das wird sowieso erste zeile in das Datei sein ...

aber dencke in php solte ähnlich sein?
nicht von syntax, sondern von logik?
 
Beispiel:
Code:
open (FILE,"$guestbookreal") || die "Can't Open $guestbookreal: $!\n";
@LINES=<FILE>;
close(FILE);
$SIZE=@LINES;

open (GUEST,">$guestbookreal") || die "Can't Open $guestbookreal: $!\n";
   $_=$LINES[0];
   if (/<!--begin-->/) { 
         print GUEST "<!--begin-->\n";
         print GUEST "Alles Neu\n";
      }
print GUEST "$SIZE\n";
 
@ShadowsMaster: file() liest die gesamte Datei in einen Array, wobei jede Zeile in ein Element eingefügt wird.

mfG Enrique
 
@Oleg: Danke für die Hilfe Oleg, aber ich hab das ganze Newsscript in PHP geschrieben. Ausserdem kenn ich mich mit Perl überhaupt nicht aus.

@enrique: Bei mir wurde als ich mit file() alles einlesen wollte immer nur "Array" in die Datei geschrieben.
 
Ok, danke für Hilfe mal an alle.

Hab das Problem jetzt gelöst. Ich lass das ganze jetzt mit fread einlesen. Da gabs am Anfang nur Probleme(das Script wollte den Inhalt nicht lesen *g*). Naja, danke trotzdem an alle.

cya
 
Zurück
Oben