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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
05.11.2009, 11:02:09
|
Anfänger
|
|
Registriert seit: Nov 2009
Alter: 32
Beiträge: 9
|
|
Php Sortieren in externer .txt Datei /Quellcode hilfe
Hey Leute, so langsam verzweifel ich.
Ich habe einen php skript, welches ein Verzeichnis ausliest, das Erstellungsdatum aufnimmt und die Differenz berechnet bis zum jetzigen Moment !
Sollte die Differenz größer als X sein schreibt php den Dateinamen, Erstellungsdatum und die Differenz in eine txt Datei.
Wie sollte ich vorgehen, damit in der Textdatei eine sortierte Ausgabe vorzufinden ist, sortiert nach der Differenz.
Kann jemand Informationen dazu beitragen ?...
Mfg Es0x
|
05.11.2009, 11:06:06
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Php Sortieren in externer .txt Datei /Quellcode hilfe
PHP kann keine Dateien sortieren.
Um im Speicher zu sortieren wurden sort(),usort(),uasort() usw. erfunden.
Such dir was aus.
|
05.11.2009, 11:21:52
|
Anfänger
|
|
Registriert seit: Nov 2009
Alter: 32
Beiträge: 9
|
|
AW: Php Sortieren in externer .txt Datei /Quellcode hilfe
ok nehmen wir sort() ... Sort numeric .. ( Dokus habe ich gelesen ;) )
Dateiname Datum und Differenz stehen aber zu einander in einer Variablen wie schaffe ich es das nach der Differenz sortiert wird, aber Dateiname und Erstelldatum weiter hin an der Differenz hängen.
Nicht das danach der dateiname einer anderen differenz zugeordnet wird
|
05.11.2009, 11:45:09
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Php Sortieren in externer .txt Datei /Quellcode hilfe
1. Über wieviele Dateien sprechen wir? 20 oder 200000 ?
2. Warum eine Differenz zu heute? Die ErstellungsZeit ist eine Differenz zum 1.1.1970, das sollte doch zu allem reichen.
3. Erstellungszeit, oder Zeit der letzten Änderung?
Warum?
usort() oder Array_multisort() sind sicherlich angemessener.
Aber solange du deine Datenstruktur geheim hältst....
|
05.11.2009, 12:34:20
|
Anfänger
|
|
Registriert seit: Nov 2009
Alter: 32
Beiträge: 9
|
|
AW: Php Sortieren in externer .txt Datei /Quellcode hilfe
Hey , hier mal der Quellcode, bitte nicht wundern ist mein erstes php Skript !
wenn die Differenz zu heute größer als X ist soll die TXT datei geschrieben werden !
PHP-Code:
<?php
/* PHP Skript zum auslesen eines Verzeichnis, mit Angabe des Erstellungsdatum */
$verz =".";
$cr =chr(10) .chr(13);
echo date("d.m.Y - H:i:s"), $cr,$cr;
if ( $out = opendir($verz) ) //öffnen des Verzeichnisses
{
while (($datei = readdir($out)) !== false) //einlesen des Verzeichnisses
{
if ($datei !=='.' && $datei !=='..') //alle Dateien ausser mit . & ..
{
$jetzt = time(); //Timestamp jetzige Zeit
$unixd = stat($datei); //UNIX Stempel der Datei
$datum = date("d.m.Y - H:i:s",($unixd[9])); //Timestamp Umrechnung
$diff = $jetzt - $unixd[9]; //Differenzberechnung jetziger Timestamp - Datei Timestamp
$zspanne= round($diff /60); //Differenz durch 60 für Minuten
echo /*"Dateiname: ",*/$datei,$cr;
if ($zspanne > 60)
{
$dateidaten = ($datei."\r\n".$datum."\t".$zspanne."\r\n"."\r\n");
$text =fopen ("fehler.txt","a");
fwrite($text, $dateidaten);
echo /*"Erstellt am: ",*/$datum," Differenz: ",$zspanne," !!ACHTUNG!!",$cr,$cr;
}
else
{
echo /*"Erstellt am: ",*/$datum," Differenz: ",$zspanne,$cr,$cr;
}
}
}
closedir($out);
}
?>
|
05.11.2009, 13:07:33
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Php Sortieren in externer .txt Datei /Quellcode hilfe
Vergiss die Differenz!
Die Anzahl fopen() und fclose() sollten identisch sein.
Zitat:
wenn die Differenz zu heute größer als X ist soll die TXT datei geschrieben werden !
|
Wo ist das X in deinem Code!
|
05.11.2009, 13:10:43
|
Anfänger
|
|
Registriert seit: Nov 2009
Alter: 32
Beiträge: 9
|
|
AW: Php Sortieren in externer .txt Datei /Quellcode hilfe
Differenz ausgedrückt in Minuten : in dem Fall > 60 .
Es geht aber darum dateien die älter als 60 Minuten sind in ein TXT zuschreiben und nach der Differenz zeit zusortieren ...
Wie gesagt sind meine ersten versuche !
|
05.11.2009, 13:22:36
|
|
Anfänger
|
|
Registriert seit: Jul 2006
Beiträge: 29
|
|
AW: Php Sortieren in externer .txt Datei /Quellcode hilfe
Ob du dir die Differenz anschaust oder das Änderungsdatum ist doch Jacke wie Hose, da du alle Werte von demselben Wert abziehst.
Vielleicht hilft dir dieses Beispiel weiter: Dateien nach Datum sortieren
Gruß
|
05.11.2009, 13:24:25
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Php Sortieren in externer .txt Datei /Quellcode hilfe
Zitat:
und nach der Differenz zeit zusortieren ...
|
Das ist Unsinn!!
Sortiere nach Alter der Dateien, das reicht!
Zitat:
Wie gesagt sind meine ersten versuche !
|
Ich weiß...
Aber trotzdem haben sich schon falsche Gedanken und Ansätze festgesetzt.
Leider....
Und die müssen erstmal wieder aus deinem Schädel raus. Und ja, das tut weh. Aber sonst gehts hier nicht vorwärts.
Tipp:
Schau dir mal Glob() oder den DirectoryIterator im Handbuch an, damit könntest du deinen Code locker halbieren.
|
05.11.2009, 14:11:23
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Php Sortieren in externer .txt Datei /Quellcode hilfe
Hier mal ein Beispiel:
PHP-Code:
class GibNurAlte extends FilterIterator
{
protected $grenze = 0;
public function __construct(Iterator $iterator, $grenze)
{
$this->grenze = $grenze;
parent::__construct($iterator);
}
public function accept()
{
if($this->current()->isDot()) return false;
return $this->current()->getMtime() < $this->grenze;
}
}
// Dateien einlesen
$directory = '.';
$grenze = strtotime('-1 HOURS');
$iterator = new GibNurAlte(new DirectoryIterator($directory),$grenze);
$alle = array();
foreach ($iterator as $key=>$value)
$alle[$value->getFileName()] = $value->getMtime();
// Array Sortieren, älteste zuerst
asort($alle);
// in Datei schreiben:
$datei = 'Datei_mit_Dateidaten.txt';
$zu_schreibendes = '';
foreach ($alle as $key=>$value) $zu_schreibendes .= "$key , $value\r\n";
file_put_contents($datei,$zu_schreibendes);
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:54:41 Uhr.
|