php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.07.2006, 21:44  
LP
Erfahrener Benutzer
 
Registriert seit: 02.06.2005
Beiträge: 150
LP
Standard Ich scheitere an Dateioperationen

Hi
ich sitze nun schon ne Ewigkeit an einem Problem mit Dateioperationen
ich möchte, dass der inhalt einer datei eingelesen wird, dann zeile für zeile per explode gesplittet wird und beim 1. eintrag dem 3. array 1 dazu gezählt wird.
danach soll alles zurückgeschrieben werden (wobei der gesamte inhalt überschrieben werden soll.
ich habe es bisher wie folgt gelöst, wobei immer zu viele zeilen verarbeitet bzw. zurückgeschrieben werden:
PHP-Code:
 $pfad="counter/";
 
$tag="tage.txt";
 
$counterh="1"
PHP-Code:
 $inhalttag=file($pfad.$tag);
 
$anzahl=count($inhalttag);
 echo 
$anzahl."
"
;
 for(
$i=1;$i<=$anzahl;$i++)
 {
   
$expltag=explode("~",$inhalttag[$i]);
   if(
$i==1)
   {
    
$expltag[3]=$expltag[3]+$counterh;
    
$heutecount=$expltag[3];
   }
   
$savetag=$savetag.$expltag[0]."~".$expltag[1]."~".$expltag[2]."~".$expltag[3]."\n";
   echo 
$savetag;

 }

 
unlink($pfad.$tag);
 
$edittag=fopen($pfad.$tag,"w");
 
fputs($edittag,$savetag);
 
fclose($edittag); 
hat jm ne idee?
LP ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.07.2006, 21:55  
Gast
 
Beiträge: n/a
Standard

Zeile 1: ok
Zeile 2-15: viel zu kompliziert
Zeile 17: unnötig
Zeile 18: ok
Zeile 19: Da wäre eine Schleife angebrachter
Zeile 20: ok

Wenn du die Datei in ein Array eingelesen hast, dann explode $array[1], verarbeite die Daten und schreibe die Daten mit implode wieder in $array[1]

Zum Schreiben der Datei nimmst du dann foreach, um alle Array-Elemente in die Datei zu bekommen.

Gruß
phpfan
 
Alt 06.07.2006, 22:01  
LP
Erfahrener Benutzer
 
Registriert seit: 02.06.2005
Beiträge: 150
LP
Standard

PHP-Code:
 $inhalttag=file($pfad.$tag);
 foreach(
$inhalttag as $tagwert)
 { 
wie meinst du das an der stelle mit dem array?
LP ist offline  
Alt 06.07.2006, 22:10  
Gast
 
Beiträge: n/a
Standard

Och Mann, das ist hier ein Forum!!! Und ein Forum ist nicht dafür da, Grundlagen zu vermitteln!!!
PHP-Code:
$edittag=fopen($pfad.$tag,"w"); 
foreach (
$inhalttag as $zeile)
    
fputs($edittag$zeile); 

fclose($edittag); 
oder
PHP-Code:
$edittag=fopen($pfad.$tag,"w"); 
fputs($edittagimplode(""$inhalttag)); 
fclose($edittag); 
Gruß
phpfan
 
Alt 07.07.2006, 01:15  
LP
Erfahrener Benutzer
 
Registriert seit: 02.06.2005
Beiträge: 150
LP
Standard

naja toll dass du das so gut kannst
es tut mir leid dass ich nicht das know how habe
und es mir sehr schwer fällt so etwas vieleicht an einem praktischen beispiel zu erarbeiten nur ist das wohl nicht gewünscht.
ich habe inzwischen resigniert.
bin damit auch durch mit dem thema!
LP ist offline  
Alt 07.07.2006, 21:45  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von LP
naja toll dass du das so gut kannst
Das sind Grundlagen, die auch du können solltest.
Zitat:
Zitat von LP
es tut mir leid dass ich nicht das know how habe
Diesen Zustand soll man ändern können.
Zitat:
Zitat von LP
und es mir sehr schwer fällt so etwas vieleicht an einem praktischen beispiel zu erarbeiten nur ist das wohl nicht gewünscht.
Oh doch, dass ist erwünscht. Aber wenn du dir mal die Mühe gemacht hättest, in der Doku die Infos und Beispiele von foreach durchzulesen, hättest du das locker hinbekommen.
Zitat:
Zitat von LP
ich habe inzwischen resigniert.
Warum? Weil du hier einen "Anschiss" bekommen hast? Das bekommt hier jeder, der nicht bereit ist, die Doku oder FAQ zu lesen. Die fleißigen Helfer hier haben nämlich keine Lust, immer wieder Beispiele zu liefern, die man ohne viel Aufwand selber finden könnte, wenn man denn wollte.

Gruß
phpfan
 
Alt 08.07.2006, 19:28  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi "LP".

Kann es sein, dass du auf das 3. Array-Feld zugreifen willst und aus Versehen den Index 3 anstatt 2 (die Array-Indizierung beginnt bei 0) ansprichst?

Ansonsten schau dir mal folgendes dclp-faq-Thema an:

http://php-faq.de/q/q-datei-einfuegen.html

Der lock auf die Dateien ist vor allem wichtig.

Und, wenn es sich dabei um einen Besucherzähler handelt, dann wäre es sicherlich geschickter, die Zahl einfach in eine eigene Datei zu schreiben. Du musst die Datei ja eben locken und damit blockierst du alle Zugriffe für die Zeit bis du fertig bist, den Wert in der Datei hochgezählt zu haben, als die Aktion am besten auf ein Minimum an Aufwand optimieren.

Basti
Basti ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Dateioperationen und Download kontrollieren Alpha Centauri PHP Tipps 2005 7 02.03.2005 11:52
Newbee. Scheitere schon am anfang Datenbanken 2 20.08.2004 15:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php dateioperationen, php dateioperation schreiben foreach, php dateioperationen nicht möglich, php dateioperationen überschreiben

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:08 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.