php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 02-10-2006, 13:51
andyk80
 Newbie
Links : Onlinestatus : andyk80 ist offline
Registriert seit: Oct 2005
Beiträge: 16
andyk80 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Viele Dateien per PHP löschen

Hallo,

ich muss relativ oft gaaanz viele Dateien (mehrere 1000) per PHP löschen. Allerdings immer nur die die älter als 20 Tage sind.

Mein bisheriger Code:
PHP-Code:
<?php
echo "Start";

function 
getdays($day1,$day2)
{
  return 
round(($day2-strtotime($day1))/(24*60*60),0);


$begin date("Y/m/d"); // we set today as an example

foreach (glob("*.log") as $filename) {

if (
getdays($begin,$end) < -20)
{
unlink ($filename);
}
}

?>
Der funktioniert auch in Ordnern in denen ein paar (ca 10) Testdateien sind. Aber sobald ich die Datei in dem Ordner speichere wo die vielen 1000 Dateien sind, kommt beim Aufrufen der PHP-Datei garnichts. Die seite ist sofort geladen und ist komplett leer. Es müsste aber doch zumindest "Start" oben stehen. Warum macht es das nicht?

MfG
Andy
Mit Zitat antworten
  #2 (permalink)  
Alt 02-10-2006, 14:17
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.833
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Da muss nicht zwingend Start stehen..

Stell mal ein error_reporting(E_ALL) an erste stelle deines Scripts.

Die direktive dispay_errors in der PHP.INI überprüfen. (Sollte auf 1 stehen)

Dein script stoppt irgendwo weil ein Fehler auftritt der allerdings nicht angezeigt wird (display_errors)

Erst wenn das Script durchgelaufen ist wird Start ausgegeben, es sei denn du verwendest ob_start() und flush() bzw ob_flush() ...
__________________
gruss Chris

Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
Mit Zitat antworten
  #3 (permalink)  
Alt 02-10-2006, 14:22
andyk80
 Newbie
Links : Onlinestatus : andyk80 ist offline
Registriert seit: Oct 2005
Beiträge: 16
andyk80 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

auch mit dem error_reporting(E_ALL); in der ersten Zeile kommt gar keine Ausgabe. Sprich, leere Seite.

MfG
Andy
Mit Zitat antworten
  #4 (permalink)  
Alt 02-10-2006, 14:24
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

werden denn überhaupt dateien gelöscht? welche php-version? welches betriebssystem?

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 02-10-2006, 14:31
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.833
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Ja ok.. Error_reporting ohne display_errors bringt dir nichts ...
__________________
gruss Chris

Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
Mit Zitat antworten
  #6 (permalink)  
Alt 02-10-2006, 14:46
andyk80
 Newbie
Links : Onlinestatus : andyk80 ist offline
Registriert seit: Oct 2005
Beiträge: 16
andyk80 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nein, es werden keine Dateien gelöscht.

Ich habe keine Root-Rechte (nur Webhosting Paket), daher kann ich die PHP ini nicht anschauen. Aber auch das mit ini_set ('error_reporting', E_ALL); funktioniert nicht.
Mit Zitat antworten
  #7 (permalink)  
Alt 02-10-2006, 14:47
andyk80
 Newbie
Links : Onlinestatus : andyk80 ist offline
Registriert seit: Oct 2005
Beiträge: 16
andyk80 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Gibt es vielleicht noch eine andere Lösung die Dateien zu löschen. Das Problem bei FTP ist das es ewig dauert, da er jede Datei einzeln durchgeht und löscht. Das dauert fast 2 Stunden jedesmal für alle zu löschenden Dateien. Vielleicht gibts ja noch ne Möglichkeit?
Mit Zitat antworten
  #8 (permalink)  
Alt 02-10-2006, 15:09
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

ist vielleicht ein rechte-problem. hast du die dateien per ftp hochgeladen, ohne anschließend ein chmod drüber zu jagen? hast du das mal auf einem lokalen system getestet?

als alternative böte sich ein shell-script als cronjob an, wenn du die möpglichkeiten dazu hast.

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #9 (permalink)  
Alt 02-10-2006, 16:24
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.833
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

phpinfo(); und da nach display_errors suchen.. Wenn´s auf on steht, ists ok.

Oder
Versuch einfach mal

PHP-Code:
<?php
system
("rm datei.ext");
?>
Und schau ob die Datei gelöscht wurde.
__________________
gruss Chris

Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
Mit Zitat antworten
  #10 (permalink)  
Alt 02-10-2006, 19:27
andyk80
 Newbie
Links : Onlinestatus : andyk80 ist offline
Registriert seit: Oct 2005
Beiträge: 16
andyk80 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

ja ich kann CronJobs angeben. Hab aber keine Ahnung wie das geht. Wie würde denn der Eintrag für das Löschen heißen?

MfG
Andy
Mit Zitat antworten
  #11 (permalink)  
Alt 03-10-2006, 01:21
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

sorry, aber ich sehe in deinen Funktionen nicht, woher $end kommt.
ausserdem wenn es sich um mehrere 1000 Dateien handelt, würde ich in keinem fall "glob" einsetzen.
weil
es wird erst ein mehrere 1000 große Array gebildet, der eigentlich überflüssig ist und sehr der Speicher belastet

mit readdir und
if(substr($dateiname,-4)==".log" && test20tage($dateiname) )
unlink ($dateiname);
in einer direkter schleife, kommst du schneller zu deiner Ziel

auch die function strtotime ist für 1000-de Aufrufe e nicht besonders gut geeignet
__________________
Slava
bituniverse.com

Geändert von Slava (03-10-2006 um 01:35 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 03-10-2006, 08:44
sternm
 Banned
Links : Onlinestatus : sternm ist offline
Registriert seit: Sep 2006
Beiträge: 103
sternm ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Viele Dateien per PHP löschen

Zitat:
Original geschrieben von andyk80
Die seite ist sofort geladen und ist komplett leer. Es müsste aber doch zumindest "Start" oben stehen. Warum macht es das nicht?
Internet Explorer macht eine leere Seite solange nichts kommt (das passiert auch auch wenn du wirreswww.wirredomain.wirrtld aufrufst.) Der Source Text dieser leeren Seite ist etwa so:

Zitat:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251"></HEAD>
<BODY></BODY></HTML>
Mit Zitat antworten
  #13 (permalink)  
Alt 03-10-2006, 08:49
sternm
 Banned
Links : Onlinestatus : sternm ist offline
Registriert seit: Sep 2006
Beiträge: 103
sternm ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von andyk80
Das Problem bei FTP ist das es ewig dauert, da er jede Datei einzeln durchgeht und löscht. Das dauert fast 2 Stunden
Auch das ist eine Eigenheit des Internet Explorer als ftp client. Du kannst einen anderen ftp client verwenden, dann geht es rascher.
Mit Zitat antworten
  #14 (permalink)  
Alt 04-10-2006, 19:12
andyk80
 Newbie
Links : Onlinestatus : andyk80 ist offline
Registriert seit: Oct 2005
Beiträge: 16
andyk80 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

nein, leider geht es auch mit anderen FTP Progs nicht schneller. Habe nun schon ca. 5 getestet. Shareware und Freeware und auch Opensource. Alle löschen die Dateien schon schnell an sich. Aber bei der Masse von Tausenden von Dateien dauert es insgesammt schon sehr lang (mehrere Stunden).

Warum kommt aber nichts beim Aufruf der Seite obwohl was kommen müsste, also z.b. "Start"?
Die Dateien werden ja auch nciht gelöscht. Wie kann man denn nun die Lösch-.php aufrufen?

MfG
Andy
Mit Zitat antworten
  #15 (permalink)  
Alt 04-10-2006, 19:19
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

versuch mal das: mach aus dem Start mal ein Start mit 1000 "a"s
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:30 Uhr.