SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.06.2003, 00:43:27
saidbuchari saidbuchari ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 118
angelegte php datei wieder löschen

uhmm ja ich mal wieder hehe. komm nciht wieter bin jetzt seit 3 wochen oder so am php proggen und hab fast meine erste community mit allem pipapo fertig. muss jetzt mal wieder ne kleinigkeit wissen. ich habe eingerichtet das man gruskarten versenden kann. also ich erkläre nur mal eben den letzten vorgang. Die gruskarte wird angelegt in dem die vorherigen daten in eine php datei angelegt werden. sprich es wird eine PHP datei angelegt die dann zum beispiel. username.useremail.php heist, und der user an den sie versendet werden soll kriegt eine mail mit einem dirketen link zu seienr karte. alles schön udn gut klappt schonmal. nun zu meiner frage. wie kann ich die datei wieder automatisch löschen laysen? also mit mysql hab ich sowas so umgesetzt indem ich den timestamp in eien tabelle mit geschrieben hab und dann mi9t einem if timestamp < blablabla dann so0ll er den table löschen. das funtzt einwandfrei. wie soll ich jetzt sowas aber für ne datei schrieben? also nicht mehr mysql? die dateie die automatsich erstellt wird sieht zum beispiel folgendermassen aus.

PHP-Code:
<?php
$empfaenger 
"Peter";
$emailempfaenger="test@hotmail.com";
$emailsender "hallo@hotmail.com";
$sender "Said";
$begruesung "Hi";
$message "blablabla";
$kategorie "love";
$karte "../love/love04g.jpg";
include(
"abholen.htm");
?>
bräuchte dam al n denkanstoss. will ja nicht irgendwann duie ganzen angehäuften gruskarten auf dem server haben.
Vileen dank schon mal für eure Hilfe.
Said
__________________
Die Wahrheit lässt sich nicht teilen...
Mit Zitat antworten
  #2  
Alt 09.06.2003, 07:48:44
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 51
Beiträge: 4.748
Löschen kannst Du erstmal mit unlink('datei.htm')

Jetzt müsste man nur noch wissen, welche Dateien alle gelöscht werden sollen. Ich würde eine Datei schreiben, die alle Dateien des Verzeichnisses durchgeht und überprüft, wann sie das letzte mal geändert wurde - filemtime() Diese Zeit überprüft man einfach mit der aktuellen Zeit minus irgendeiner Differenz und wenn die Datei älter ist, als erlaubt, dann mit unlink() löschen.
Das auslesen des Verzeichnisses empfiehlt sich allerdings von Zeit zu Zeit von Hand zu starten, da das bei einer größeren Zahl Dateien doch etwas länger dauert und der Besucher nicht damit gequält werden sollte.


So, alles klar? :)
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 09.06.2003, 12:08:00
saidbuchari saidbuchari ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 118
DANKE!

Danke c4 hehe das hilft mir schon mal ne menge weiter. hmm jetzt bleib nur noch die frage wenn ich das folgendermassen mache

PHP-Code:
<?php
$daten 
'??.php';
$zeit filemtime($daten);
$zeit2 time() - 864000;
if(
$zeit2 $zeit)
{
unlink($daten);
}

 
?>
da ja die dateien die gelöscht werden sollen automatisch generiert werden (sie setzen sich aus username, usermail udn dann .php zusammen. wie kann ich da ne while schleife oder sowas reinbringen. unterstützt php irgend ne funktion wie *.php ?? ich hoffe du kannst mir nochmla kurz deine zeit opfern. Danke
__________________
Die Wahrheit lässt sich nicht teilen...
Mit Zitat antworten
  #4  
Alt 09.06.2003, 13:07:27
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 51
Beiträge: 4.748
Klar, auch für Dich haben wir ein wenig Rechenzeit gebucht und nutzen diese nun für die Beantwortung der Frage. ;)
PHP-Code:
<?php
 
// Verzeichnis angeben
 
$dir="pics/";
 
$folder=dir($dir);
 
#$folder->handle;
 
$folder->read(); $folder->read();
 while (
$temp=$folder->read())
  { if (
filemtime($temp/* bla bla - irgendein Vergleich halt */) { unlink($temp); }
 
$folder->close();

 echo 
"Fertig.";
 exit;
?>
Hoffe, dass das klappt. Wurde gewissermaßen on-the-fly angepasst.
__________________
sic!
--> http://dbCF.de/

Geändert von ­c­4­ (09.06.2003 um 13:17:04 Uhr)
Mit Zitat antworten
  #5  
Alt 09.06.2003, 13:12:44
saidbuchari saidbuchari ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 118
hehe

lol das muss ich mir jetzut genauer anschauen. das sieht ein wenig kompliziert aus. aber ich denke mal ich werde schon dahintersteigen was das alles bedeutet. uhm soweit ich sehen kann so auf den ersten blick markiert bzw listet er ja alle dateien jetzt auf im verzeichniss pics eichtig? kann ich das irgendwie ncoh eingrenzen das nur die php dateien in einen array geschrieben werden? ich probier das jetzt gleich mal das umzusetzen.

Danke nochmal für die rechenzeit.
Said
__________________
Die Wahrheit lässt sich nicht teilen...
Mit Zitat antworten
  #6  
Alt 09.06.2003, 13:14:16
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 51
Beiträge: 4.748
Also eine bestimmte Dateiendung rauszufiltern geht glaube ich nicht.
Ja, er listet momentan alle Dateien aus dem Verzeichnis ./pics/ auf - wie gesagt: angepasst.
Wieso willst Du die Dateinamen eigentlich erst in Array klatschen?


Edit: Hast übrigens recht, das ist keine wirklich einfache Variante. Geht auch einfacher - mal im Forum suchen. Ist so ziemlich das einzige Skript, das ich nutze und nicht meiner Feder entsprungen ist... :(
__________________
sic!
--> http://dbCF.de/

Geändert von ­c­4­ (09.06.2003 um 13:19:49 Uhr)
Mit Zitat antworten
  #7  
Alt 09.06.2003, 13:26:48
saidbuchari saidbuchari ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 118
Zitat:
Wieso willst Du die Dateinamen eigentlich erst in Array klatschen?
ich daqchet weil der alle durchgehen soll müssen alle in einem Aray stehen er soll sie doch alle überprüfen. achso ne mein fehler stimmt er soll ja nur die zeit überprüfen.

Zitat:
Also eine bestimmte Dateiendung rauszufiltern geht glaube ich nicht.
dann muss ich die jetzt per hand erstmal aufteieln hehe aber dasd dürfte das kleinere problem sein.


Zitat:
$folder->read(); $folder->read();
warum 2 mal hintereinander?
PHP-Code:
<?php
 
// Verzeichnis angeben
 
$dir="pics/";
 
$folder=dir($dir);
 
#$folder->handle;
 
$folder->read(); $folder->read();
$zeit time() - 864000;
 while (
$temp=$folder->read())
  { 
if (
filemtime($temp) < $zeit) { 
unlink($temp); }
$folder->close();
echo 
"Fertig.";
exit;
?>
könnte das so gehen?


heheh ging ja eben ratz fatz das antworten. lol danke ist echt klasse heir das forum.
__________________
Die Wahrheit lässt sich nicht teilen...
Mit Zitat antworten
  #8  
Alt 09.06.2003, 13:30:19
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 51
Beiträge: 4.748
Wenn Du wirklich die Dateien aus dem Ordner pics auslesen willst, dann sollte das klappen.

Warum $folder->read(); doppelt? Kannst Dir ja spaßeshalber mal den gesamten Verzeichnisinhalt anzeigen lassen, da wirst Du sehen, dass die ersten beiden Einträge immer . und .. sind, also 2, auf die man verzichten kann.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #9  
Alt 09.06.2003, 13:42:27
saidbuchari saidbuchari ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 118
habs gerade probiert. wenn mann nur einmal dieses folder ding drinstehen hat dann zeigt er mir noch vor der ersten datei 2 punkte hmm warum macht er das(einfach mal interessehalber)? na ja ich chek jetzt mal mit dem löschen ob das funzt. wenn ich das so mach also die abfrage nach der whileschleife
$zeit = time() - 500;
if (filemtime($temp) < $zeit) {
unlink($temp);

müsste er doch alle datei8en löschen die älter als 500 sekunden sind oder hab ich da jetzt n denkfehler?

probier ich mal jetzt. hehe

meld mcih gleich ncohmal obs gefunzt hat.
__________________
Die Wahrheit lässt sich nicht teilen...
Mit Zitat antworten
  #10  
Alt 09.06.2003, 13:44:41
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 51
Beiträge: 4.748
Stimmt schon, dass er Dir .. anzeigt.
Das erste $folder->read(); ist für .
Das zweite $folder->read(); ist für ..
Einleuchtend?

Die Zeitrechnung sieht gut aus. Aber das ist was, wo ich mich immer wieder verdenke, also einfach probieren und irgendwann passt das dann. :)
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:13:54 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.


© 2001-2021 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt