php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.06.2005, 12:29  
Gast
 
Beiträge: n/a
Standard Umgang mit Flatfile

Ich habe eine kleine Datenbank mit 21 Feldern in einem Flatfile gespeichert. Die Variablen sind durch ein ^ getrennt und der datensatz schließt am ende einer Zeile mir adressende ab. In der nächsten Zeile steht der nächste Datensatz, bzw. die nächste Person.

Nun möchte ich mit einem kleinen Skript mit einem Mouseklick aus allen Datensätzen, (Zeilen im File), nur die 18. Variable auf einen für alle Zeilen gleichen Wert setzen.

Wie könnte man das am schnellsten und elegantesten umsetzen?
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.06.2005, 12:38  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

mittels file() in ein array laden
dann mit foreach durchgehen
-> jede zeile mittels explode('^',$array) trenne in eine variable speichern, das gewünschte element verändern, mittels implode('^',$array) wieder zusammensetzen und dann mittels implode("\n" das ganze array zu nem string machen und wieder in die datei schreiben.


www.php.net/file
www.php.net/explode
www.php.net/implode


mfg
robo47
robo47 ist offline  
Alt 30.06.2005, 12:39  
Gast
 
Beiträge: n/a
Standard

Diesbezüglich kann ich dir nur folgenden Beitrag

---> http://www.php4-forum.de/forum.php3?nr=237466

zur Lektüre empfehlen!

Ohne weiteren Kommentar meinerseits...
mfG
~dilemma~
 
Alt 30.06.2005, 15:05  
Gast
 
Beiträge: n/a
Standard

HI! Danke! Ich hab das jetzt soweit, dass ich das Flatfile einlesen und ändere und wieder implode. Aber jetzt hab ich das problem mit dem Filezeiger: Wenn ich in der Foreach Schleife mit fopen a machen dann füge ich alles korrigierte hinzu weil der zeigen nach dem öffnen am Ende ist. Wenn ich mit fopen w mache, dann schreibt er jeweils nur eine Zeile und am ende ist nur mehr die letzte übrig weil alles andere überschrieben ist.
Gibts eine Möglichkeit mit Fopen a den Zeiger beim öffnen auf den Fileanfang zu setzen damit die alten Daten auch überschreiben werden? Weil derzeit werden die korrigierten daten einfach dazugehängt, leider.!


PHP-Code:
<?php
foreach ($alles as $line_num => $zeile)
 {
   
$stk=explode ("^"$zeile);
   
$stk[20]="nein";
   
$zeileneu=implode ("^"$stk);
   
$allesneu=fopen("daten.dat""a");
   
fwrite($allesneu$zeileneu);
   
fclose($allesneu);
 }

?>
 
Alt 30.06.2005, 15:11  
Gast
 
Beiträge: n/a
Standard

http://de2.php.net/manual/de/function.fopen.php

mfg boeseRaupe
 
Alt 30.06.2005, 15:12  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

RTFM

www.php.net/fopen, da gibts ne Tabelle was wie und wo
robo47 ist offline  
Alt 30.06.2005, 15:12  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

verlager das öffnen und schließen. muß ja nicht innerhalb der schleife geschehen.
__________________
derHund ist offline  
Alt 30.06.2005, 21:36  
Gast
 
Beiträge: n/a
Standard

Vielen Dank. Fopen mit "w"und fClose aus der foreachschleife rausgetan und schon gings.

PHP-Code:
<?php


$alles
=file("daten.dat");
$allesneu=fopen("daten.dat""w");

foreach (
$alles as $line_num => $zeile)
 {
   
$stk=explode ("^"$zeile);
   if (
$stk[20]!="nein")
    {
      echo 
"Der Status von $stk[2] $stk[0] wird von <font color=\"green\">[b]$stk[20][/b]</font> auf <font color=\"red\">[b]nein[/b]</font> zurückgesetzt.
\n\n"
;
    }
   
$stk[20]="nein";
   
$zeileneu=implode ("^"$stk);
   
fwrite($allesneu$zeileneu);
   
 }

fclose($allesneu);
?>
 
Alt 30.06.2005, 21:40  
Gast
 
Beiträge: n/a
Standard

Hoffentlich stiftet das jetzt keine Verwirrung, aber sieh Dir doch auch mal http://php.net/fgetcsv und http://php.net/fputcsv an. fputcsv() ist allerdings bei php4 nicht vorhanden.
 
 


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
Vergleiche oder aber der korrekte Umgang mit " und ' PHP Tipps 2007 7 08.12.2005 12:19
Umgang mit Newbies Zergling-new Off-Topic Diskussionen 16 12.11.2005 22:12
phpbb mit flatfile database peng Beitragsarchiv 3 22.08.2005 10:20
umgang mit array, überprüfen nach inhalt Tic Rederon PHP Tipps 2005-2 4 02.08.2005 17:39
Textarea: Zeilenumbrüche (PHP umgang / Mozillafähig) King2k HTML, Usability und Barrierefreiheit 5 26.07.2005 08:30
Flatfile auf doppelte Einträge checken PHP Tipps 2005-2 1 26.06.2005 21:29
Flatfile DB PHP Tipps 2005 1 23.05.2005 14:22
Umgang mit den drei PHP-Foren Basti Off-Topic Diskussionen 21 19.08.2004 15:50

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
flat file öffnen, fputcsv php4, flatfile php, php aus flatfile db in array schreiben, formulardaten in flat file speichern, flat file format öffnen, flat file speichern mit php, flat file wie öffnen, php flat file, datenbank oder flat file wiki, php flat file fwrite, fwrite w flatfile

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:41 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.