Newsscript mit Txt-Datei: Daten blöckeweiße aus File lesen!

methodus

Erfahrenes Mitglied
Mal wieder Hilfe gefragt: folgendes Problem, ich habe vor mir ein Newsscript zu schreiben, da ich aber kein MySQL zur Zeit zur Verfügung stehen habe, bin ich notgedrungen auf txt ausgewichen. Das Schreiben klappt bisher ganz gut, aber wie kann ich die Newsdaten so wieder einlesen, dass ich jede einzelne News einlesen kann (als array oder so)

PHP:
$file = "news.txt";
  if ( file_exists($file)) {
  $fnews = file($file);
  }
  else {
  $fnews = "blabla bla bla blabla! <br>-!thrclose-";
  }
  for($i=0;$i<count($fnews);$i++) {
  echo ereg_replace("-!thrclose-","<br>",$fnews[$i]);
  }

das ist das problemkind meines scripts, kurze erleuterung: die datei wird eingelesen und dann ausgegeben und dann zeilenweiße ausgegeben.

zur trennung einzelner News steht "-!thrclose-", zuerst dachte ich dass ich die datei komplett in eine Variable einlesen kann ohne Arrays erzeugen zu müssen um dann mit explode() die News bei -!thrclose- zu trennen und dann auszugeben. Das geht leider nicht so wie ich mir das dachte, da ich keinen passenden befehl gefunden habe. dann habe ich versucht mit einem umweg die arrays zusammenzufügen indem ich versuchte einer variablen die einzelnen array hineinzupacken

PHP:
for($n=0;$n<count($fnews);$n++){
       $tnews .= $fnews[$n];
      }

diese Variante war erfolglos da mir nach 30 sekunden das script abschmierte, TIMEOUT

was ich auch versuche ich bekomme kein ergebnis, falls es bereits ein thread geben sollte wo ein newsscript mit txt beschrieben ist (ich hatte mal eins gefunden, hab dann aber dummerweiße meinen rechner zum absturz gebracht und habe die seite nicht wiederfinden können WINDOWS hurra!) kann mir jemand sagen wo ich es finde oder wie ich mein problem lösen könnte

greeeez methodus
 
PHP:
$newsinhalt=file("news.txt");
So kannst du jede News als Element des arrays einlesen (1 News = 1 Element).
Wichtig ist, dass beim schreiben der News nach jedem Eintrag ein "\n" am Ende einer News steht.
Daran erkennt dann php, dass da eine neue Zeile (neue News) beginnt.
Ich hoff mal, dass das die richtige Antwort war, war das einzige was mir dazu eingefallen ist ...
 
Naja, dass er mir den Mist in Zeilen ausspuckt, wusste ich schon auch dass er das in Arrays macht. das \n is nicht zwingend notwendig, man muss halt einfach nur den text den man schreiben will zeilenweiße in die txt-file schreiben. also soweit war ich bisher... aber da bei txt ne zeichenbegrenzung pro zeile vorliegt (so weit ich weiß) kann ich die news nicht einfach in 1 zeile schreiben *seuftz*
 
PHP:
//Einträge in txt schreiben Zeilenweise 
$fp = fopen("admin/textfiles/eintraege.txt", "a+");
$data= "$person#$siteaddress#$email\r\n";

fputs($fp,$data);

        fclose($fp);

//Einträge lesen 
$inhalt=file("data.txt","r"); 
$i=0;

$s = count($inhalt) ;
for ($i = 0; $i<$s;$i++){
$krach = explode("#",$inhalt[$i]);


echo "$krach[0]<br>";
echo "$krach[1]<br>";
echo "$krach[2]<br>";

}


//tja so könnte man das auch machen - müsste eigentlich gehen

Vielleicht hilft da das ein bisschen
 
ich habs geschaft, die variante die arrays zusammenzukrachen war gar nicht mal so abwägisch, nur war die schreibweiße des zusammenfügens falsch, wahrscheinlich isses zu ner endlosschleife gekommen :(, ok hier das script:

PHP:
$file = "news.txt";
  if ( file_exists($file)) {
  $fnews = file($file);
  }
  else {
  $fnews = "DATE ???????? TIME ???? MEZ : Keine News vorhanden<br><hr noshade size='1'><br>Es liegen zur Zeit keine  

 News vor<br><br><br>-!thrclose-";
  }

  for($i=0;$i<count($fnews);$i++) {
    $news = $news . $fnews[$i];
  }

  $news = explode("-!thrclose-",$news);

  for($n=0;$n<count($news);$n++){
  $ord = count($news) - $n -1;
  echo ereg_replace("-!thrclose-","<br>",$news[$ord]);
  }

wer da nich durchblickt, kann mich ja nochmal fragen was das im einzelnen bedeutet
 
Zurück