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 |
25.10.2003, 14:09:16
|
|
Junior Member
|
|
Registriert seit: Mar 2003
Ort: Krefeld
Beiträge: 245
|
|
*.txt-Dateien aus Verzeichnis auslesen
Guten Tag!
In einem Verzeichnis liegen eine unbestimmte Anzahl an *.txt-Dateien, diese möchte ich auslesen, und die Inhalte der *.txt-Dateien nach Datum sortiert (das neuste ganz oben!) auslesen.
Vielleicht kann mir mal jemand einen Tip geben - ich finde den Anfang nicht.
Danke & schönen Tag.
Thorben.
|
25.10.2003, 20:31:31
|
Junior Member
|
|
Registriert seit: Jul 2003
Beiträge: 182
|
|
PHP-Code:
<?php
$d = dir('path/to/txt/files/with/trailing/slash/');
$files = array();
$toEnd = '.txt';
while (($entry = $d->read()) !== false) {
if (is_file($d->path.$entry) &&
(StrCaseCmp($toEnd, substr($entry, -(strlen($toEnd)))) == 0)) {
$files[$entry] = filemtime($d->path.$entry);
}
}
$d->close();
arsort($files);
foreach($files as $name => $timestamp){
echo "$name => ".date('r', $timestamp)."n";
}
?>
Wenn du die Dateiendung case sensitive vergleichen willst (nur .txt nicht .TXT, .TxT etc...) musst du anstatt StrCaseCmp() StrCmp() benutzen.
HTH Andre
|
25.10.2003, 20:47:26
|
|
Junior Member
|
|
Registriert seit: Mar 2003
Ort: Krefeld
Beiträge: 245
|
|
Danke.
Das funktioniert wunderbar, aber mein Ziel ist es (vielleicht habe ich mich nicht gründlich genug ausgedrückt!), die Inhalte dieser Datei auszulesen, nicht die Dateinamen.
Ich bräuchte quasi die Funktion, die mir dabei hilft, alle Datei hintereinander weg zu öffnen und anzuzeigen.
Danke.
thorben.
Geändert von thorben (25.10.2003 um 20:53:16 Uhr)
|
25.10.2003, 22:05:59
|
Anfänger
|
|
Registriert seit: Oct 2003
Ort: Kiel
Beiträge: 46
|
|
Ich bin mir nicht sicher, aber so könnte es vielleicht gehen
PHP-Code:
<?php
$d = dir('path/to/txt/files/with/trailing/slash/');
$files = array();
$toEnd = '.txt';
while (($entry = $d->read()) !== false) {
if (is_file($d->path.$entry) &&
(StrCaseCmp($toEnd, substr($entry, -(strlen($toEnd)))) == 0)) {
$files[$entry] = filemtime($d->path.$entry);
}
}
$d->close();
arsort($files);
foreach($files as $name => $timestamp){
//----------Liest den Inhalt der Datei----------
$str = fread ($name, filesize($name));
$str = nl2br($str);
//----------------------------------------------
echo "$name => ".date('r', $timestamp)."n";
//-------------Gibt den Inhalt aus--------------
echo "$str";
//----------------------------------------------
}
?>
Gruß nino
|
25.10.2003, 22:21:57
|
Junior Member
|
|
Registriert seit: Jul 2003
Beiträge: 182
|
|
mittels readfile() kannst sie 1:1 zum Client ausgeben.
|
25.10.2003, 22:43:53
|
|
Junior Member
|
|
Registriert seit: Mar 2003
Ort: Krefeld
Beiträge: 245
|
|
Puh, ziemlich kompliziert für jemanden, der sich noch nicht so gut auskennt.
Danke.
Bekomme jetzt folgende Fehlermeldung:
Warning: fread(): supplied argument is not a valid File-Handle resource in /www/htdocs/qw/index.php on line 122
test.txt => Sat, 25 Oct 2003 21:42:21 +0200
(test.text ist die Datei, die er in dem vorgegebenen Verzeichnis findet.)
Ist da was falsch gelaufen?
|
25.10.2003, 23:41:35
|
|
Junior Member
|
|
Registriert seit: May 2003
Ort: CH Zürich
Alter: 66
Beiträge: 352
|
|
Bitte schreib doch immer, was in der betreffenden Programmzeile steht, am Besten auch die, die vor- und nachher stehen. Also Zeile 121 - 123.
Damit hilfst Du allen.
|
26.10.2003, 00:02:52
|
Junior Member
|
|
Registriert seit: Jul 2003
Beiträge: 182
|
|
Zitat:
Original geschrieben von Jürg
Bitte schreib doch immer, was in der betreffenden Programmzeile steht, am Besten auch die, die vor- und nachher stehen. Also Zeile 121 - 123.
Damit hilfst Du allen.
|
Warscheinlich der Code von Nino. Denn der Code von Nino oeffnet die Datei nicht. fread() erwartet als 1. Argument naemlich ein Hanlde (von fopen). Also schreib doch bitte so etwas in der Art:
PHP-Code:
<?php
foreach ($file as $filename => $timestamp) {
echo "Letzte aenderung der Datei: ".date('r', $timestamp);
readfile($pathToTxt.$filename);
}
?>
|
26.10.2003, 13:02:05
|
Anfänger
|
|
Registriert seit: Oct 2003
Ort: Kiel
Beiträge: 46
|
|
Verdammt, hab tatsächlich vergessen die Datei vorher zu öffnen, sorry!
Gruß nino
|
26.10.2003, 15:16:02
|
|
Junior Member
|
|
Registriert seit: Mar 2003
Ort: Krefeld
Beiträge: 245
|
|
Danke für Eure große Mühe, aber es ist bestimmt total quatschig, jeden Beitrag in eine einzelne Textdatei zu schreiben, gel.
Deswegen versuche ich es mittels Arrays, vielleicht habe ich da mehr Chancen, meine Ziele zu verwirklichen.
Thorben.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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 19:03:45 Uhr.
|