Nur zeille 3 aus Textdatei mit PHP auslesen und anzeigen. Wie geh dass?

gixnetwork

Erfahrenes Mitglied
Hallo

Habe 1000de beispiele in google gefunden aber immer mit alles auslesen. (arry)

Hier mein beispiel , lesen schreiben von ganzer textdatei datei:

PHP:
<?php
$datei=fopen("../user/01/onoff-bgcolor.txt","r+");
$bgcolor = fgets($datei);
fclose($datei);
?>
<?php
$onoff=$_POST['jscolor'];
$datei=fopen('../user/01/onoff-bgcolor.txt','w+')  ;
$output=fwrite($datei,$onoff);
fclose($datei);
?>

So, mein proplem, beim laden von der webseite werden 120 textdateien ausgelesen.
Immer eins nach dem andern (textdatei öffnen, lessen)
Dies verursacht zuvielle "http Request" Traffik. (laut betreiber des servers...

Meine Frage:

Wie speichere und lade ich den wert "XY" in einer Textdatei, in zeille 3, ohne die anderen zeilen zu Verändern?

Also: Tetdatei lesen, dann jede zeillen inhalt merken. zeille 3 mit wert "XY" ersetzen und speichern.

Wie geht das?

Grosses danke (Analphabet)
 
Hi

dein Lese-Code liest nur eine Zeile.

Und das mit dem HTTP-Traffic is Unsinn, es entsteht überhaupt kein Traffic.

Jedenfalls, direkt ändern, ohne den Rest zu beachten, geht normalerweise nicht
(nur wenn die neue Zeile genau gleich lang wie die alte ist, in Bytes).

Falls die Dateien klein genug sind kannst du einfach alles einlesen,
eine Zeile ändern, und wieder neu schreiben.
PHP:
$lines = file("datei.txt");

$lines[2] = "neueZeile";

$datei = fopen('datei.txt','w')  ;
foreach($lines as $value) {
    fwrite($datei, $value . PHP_EOL);
}
fclose($datei);
 
Zuletzt bearbeitet:
THX sheel

Cool viellen lieben dank

ganz genau das was ich suche.. foreach ist scheinbar das zauberwort und ich hatte mich mit DOM struktur beschäftigt

Danke viel mals

zum Auslesen einer zeile müste das so aussehen?...
PHP:
$lines= file("datei.txt");
$datei = fopen('datei.txt','r') ;
foreach($lines as $value) {
    load($datei, $value . PHP_EOL);
}
fclose($datei);
echo $lines[2] ;
 
Zuletzt bearbeitet von einem Moderator:
Bitte meinen ersten Beitrag oben wieder lesen.

Wie schon gesagt:
fgets liest nur "eine" Zeile.
file() liest "alles".
Und nur die dritte Zeile zu ändern, ohne den Rest zu verarbeiten, "geht nicht".
 
Okey (missverständniss - Frage 3 zeille ändern erledigt / Frage wie 3. zeille in echo ausgeben.

["zitat"
fgets liest nur "eine" Zeile.
file() liest "alles".]

nur zeille 3! (ist nicht möglich ohne alles zu laden, ist total nachvollziehbar )

file() ist richtig.

Suche das gegen stück (Zeille 3 kann ich "Überschreiben". Möchte jetzt NUR zeille 3 Ausgeben "echo / print"

vermutlich ändlich wie das speichern...

PHP:
$lines = file("datei.txt");

$datei = fopen('datei.txt','r')  ;
foreach($lines as $value) {
 echo  $lines[2] ;
}
fclose($datei);



Nochmals besten dank - es gibt so einige wichtige punkte in php, die ich nicht verstehe
 
PHP:
$lines = file("datei.txt");
echo  $lines[2] ;

Du solltest dir die verlinkte Seite einfach einmal durchlesen...

Deutsch Lesen kann ich, aber mir mangels zum teil an verstäntnis.

zeile 3 ändern EDIT.PHP
PHP:
$lines = file("datei.txt");
$lines[2] = "neueZeile";
$datei = fopen('datei.txt','w') ;
foreach($lines as $value) 
{
 fwrite($datei, $value . PHP_EOL);
}
fclose($datei);

ausgeben ZEIGE.PHP
PHP:
$lines = file("datei.txt");
$datei = fopen('datei.txt','r') ;
echo $lines[2] ;
fclose($datei);
 
Nochmal: Du brauchst das fopen beim lesen nicht.

Die Funktion file() macht schon alles in sich drin.
 

Neue Beiträge

Zurück