php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.05.2006, 16:31  
Benutzer
 
Registriert seit: 24.07.2003
Beiträge: 46
dj-digger
Standard Prüfen ob eine Datei ausgelesen werden kann

Ich baue gerade an einem Newsticker und habe folgende Bedenken:

die Datei ticker.php wird beim User alle 30Sekunden oder per Klick aktualisiert. Beim Aktualisieren werden bestimmte Informationen aus einer Text-Datei ausgelesen.

Paralell dazu werden im Minutenabstand Daten in Datei geschrieben (von dem der den Ticker pflegt).

Was passiert nun, wenn genau in dem Moment wo die Datei neu geschrieben wird jemand aktualisiert?
Kann das Script dennoch die Daten auslesen?
Hilft es wenn ich vor dem Auslesen in der ticker.php prüfe ob die Datei lesbar ist? Wenn diese true zurück gibt,
zeigt er die Daten an, wenn nicht soll er noch einmal refreshen, denn bis dahin sollte das Schreiben in der Datei abgeschlossen sein, oder?

Ich hoffe ihr wisst was ich meine und könnt mir meine Angst nehmen. Oder bin ich mit meiner Lösung auf dem Holzweg. Bin für Kritik und Fragen offen.
dj-digger ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 08.05.2006, 17:05  
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

suchst du: www.php.net/is_readable
robo47 ist offline  
Alt 08.05.2006, 17:06  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Lass das ganze doch über eine Datenbank laufen, da bist du auf der sicheren Seite oder wenn du auf dem Dateiweg bleibst, versuch Zugriffs- und Schreibzeiten auf ein größeres KGV zu bringen (oder is das sinnlos? *hm* grad selbst am überlegen)
Zergling-new ist offline  
Alt 08.05.2006, 18:05  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

Zitat:
Zitat von Zergling
Lass das ganze doch über eine Datenbank laufen, da bist du auf der sicheren Seite oder wenn du auf dem Dateiweg bleibst, versuch Zugriffs- und Schreibzeiten auf ein größeres KGV zu bringen (oder is das sinnlos? *hm* grad selbst am überlegen)
Würde auch sagen, her mit ner DB. Dafür sind die ja schliesslich da.

Ansonsten leg 2 Dateien an. Diese befüllst zu alternierend mit den neuesten News.

Und in der auslesenden Datei liesst du ne cfg aus, die auf die aktuelle Datei zeigt. Wenn du was aktualisierst, schreibste das in die Datei die gerade nicht gebraucht wird. Wenn du fertig bist, lässte die cfg auf die andere Datei zeigen. Dann ziehst du die andere Datei nach. Beim nächsten aktualisieren, machste das ungekehrt.

Aber auf der anderen Seite, wenn die Datei keine 2MB groß ist, sondern nur paar Byte, sollte es kaum weh tun, da was zu aktualisieren. Im dümmsten Fall hat eben ein User mal nen Leeren Ticker.

Gefährlich wirds halt, wenn du in dem Bruchteil der Sekunde, wo du was in die Datei schreibst, der lesende Prozess entweder nix oder eben ne defekte Datei abbekommt.

Diese Gefahr besteht natürlich auch bei meiner Variante, nur ist eben die Zeit da es nur ne cfg Änderung ist viel kürzer in der die Gefahr besteht.

Ist eben alles relativ Am besten fährst du mit ner DB die die Zugriffe selber regelt.
CC84 ist offline  
Alt 08.05.2006, 19:36  
Gast
 
Beiträge: n/a
Standard Re: Prüfen ob eine Datei ausgelesen werden kann

Zitat:
Zitat von dj-digger
Was passiert nun, wenn genau in dem Moment wo die Datei neu geschrieben wird jemand aktualisiert?
Kann das Script dennoch die Daten auslesen?
Das sind die Probleme bei dateibasierten Datenbanken, die es bei einem DBMS wie zB. MySQL nicht gibt.

Zitat:
Hilft es wenn ich vor dem Auslesen in der ticker.php prüfe ob die Datei lesbar ist?
Trenne einfach Content und Programm. Warum willst Du das Programm ticker.php komplett neu erstellen, wenn das Programm ticker.php nur ein paar neue Inhalte benötigt? Am Programm zur Darstellung der Inhalte ändert sich doch nix. Und die Inhalte kannste via a. DBMS oder b. CSV File bequemer verfügbar machen.

a. dürfte bekannt sein (is ja das Forum für "Fortgeschrittene Fragesteller")
b. ist generell davon abhängig, wie oft wer welche Inhalte verändert.
Falls dies relativ selten erfolgt:
1. neues CSV temporär erstellen,
2. altes CSV löschen,
3. temporäres CSV umbenennen.

2. + 3. geht mit PHP relativ fix.
Dein Programm sollte prüfen, ob die Datenquelle lesbar ist. Falls nicht: entweder eine "Schweigesekunde" einlegen oder einen Hinweis "Bitte F5 drücken" ausgeben.

Falls dies relativ häufig erfolgt:
verwende für die Inhalte ein DBMS.
 
Alt 08.05.2006, 19:41  
Benutzer
 
Registriert seit: 24.07.2003
Beiträge: 46
dj-digger
Standard

Zitat:
Zitat von CC84
Würde auch sagen, her mit ner DB.

Im dümmsten Fall hat eben ein User mal nen Leeren Ticker.

Gefährlich wirds halt, wenn du in dem Bruchteil der Sekunde, wo du was in die Datei schreibst, der lesende Prozess entweder nix oder eben ne defekte Datei abbekommt.
DB fällt im Moment raus, es muss die Textvariante (oder eben CSV) bleiben. So wie ich das verstanden habe kann ich mit is_readable die genannte "schweigesekunde" einlegen...

Ich denke das hat mir schon geholfen das ich doch nicht auf dem Holzweg bin. danke an alle Tippsgeber
dj-digger ist offline  
Alt 08.05.2006, 20:10  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von dj-digger
DB fällt im Moment raus, es muss die Textvariante (oder eben CSV) bleiben.
Das ist sinnfrei, weil es keinen logischen Grund (außer Hartz4 mit 60% Abzug oder Tascherngeldsperre auf Lebenszeit) gibt, darauf zu verzichten.

Alles andere ist unzuverlässiger Krampf.
 
Alt 08.05.2006, 20:26  
Benutzer
 
Registriert seit: 24.07.2003
Beiträge: 46
dj-digger
Standard

Zitat:
Zitat von ignatz
Zitat:
Zitat von dj-digger
DB fällt im Moment raus, es muss die Textvariante (oder eben CSV) bleiben.
Das ist sinnfrei, weil es keinen logischen Grund (außer Hartz4 mit 60% Abzug oder Tascherngeldsperre auf Lebenszeit) gibt, darauf zu verzichten.

Alles andere ist unzuverlässiger Krampf.
Dann wird es halt'n Krampf, aber ich habe diese Vorgabe und daran halte ich mich. Punkt. Thema beendet.
dj-digger ist offline  
Alt 08.05.2006, 20:34  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

sehr fortgeschritten dj-digger

Thread (nicht nur deswegen) verschoben.
Zergling-new 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
[Erledigt] Hochgeladene Datei wird doppelt abgelegt thecracked PHP Tipps 2008 3 01.07.2008 16:31
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
String als Datei speichern Zangelo PHP Tipps 2006 23 25.08.2006 14:13
Datei durchsuchen Wöllchen Beitragsarchiv 3 02.03.2006 22:23
[Erledigt] Datei mit "w" schreiben -&gt PHP-Fortgeschrittene 17 30.12.2005 13:58
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
Datei mehrmals öffnen und schließen in einem Skript PHP Tipps 2005-2 14 14.07.2005 18:12
Ordner Struktur auslesen bestimmte datei finden .... silverghost PHP Tipps 2005 3 24.05.2005 13:55
Includete Datei nicht gleich ausgeben Madden PHP-Fortgeschrittene 1 12.05.2005 00:19
[Erledigt] mail versand mit anhang (-- fopen(), fread(), filesize() --) PHP Tipps 2005 5 29.01.2005 18:36
xfdf Datei mit PHP an eMail senden Problem: Leere Datei PHP Tipps 2004-2 1 07.12.2004 12:25
Dateien lesen und schreiben [mehr als: r,a,w]? PHP Tipps 2004 4 24.10.2004 18:53
php und ftp PHP Tipps 2004 4 07.10.2004 09:58
Wie kann ich eine PHP Datei in eine HTML Datei umwandeln PHP Tipps 2004 2 12.08.2004 18:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
csv datei prüfen php, prüfen ob datei lesen, prüfen ob datei lesbar, php prüfen ob datei lesbar ist, php prüfen ob datei gerade fertig geschrieben wird, prüft ob eine datei lesbar ist, php prüfen ob eine datei in einem prozess ist, prüfen ob datei abgeschlossen ist php, ob!-datei auslesen, datei auslesen und prüfen, php prüfen ob datei zu groß die, prüfen ob datei vollständig php, datei lesbarkeit prüfen, php prüfen datei vollständig

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