![]() |
[PHP][Gelöst] *.html Dateien auslesen und verarbeiten :(
hi leutz, hab ein riesen-problem! :'(
also... ich muss aus einem Ordner alle HTML-Dateien auslesen. so... diese sehen wie folgt aus, Beispiel: 2005-05-01.html also: YYYY-MM-DD.html so... wie mache ich dass, dass ich dann alle solche dateien (und nur solche!) auslese und dann zu jedem in chronologischr Reihenfolge einen Link erstelle? Bin wirklich am Verzweifeln, das ist nämlich für einen Auftrag und der sollte schnellstmöglich beendet werden :( Noch schnell ein Beispiel: Im Ordner enthalten: 2005-05-01.html | 2005-06-23.html sollte dann in ungefähr so aussehen: News vom 23.6.2005 [2005-06-23.html] News vom 1.5.2005 [2005-05-01.html] |
Re: [PHP] *.html Dateien auslesen und verarbeiten :(
Zitat:
|
Re: [PHP] *.html Dateien auslesen und verarbeiten :(
och, falsche Rubrik, falsche Antwort, sorry.
|
Re: [PHP] *.html Dateien auslesen und verarbeiten :(
Zitat:
|
Re: [PHP] *.html Dateien auslesen und verarbeiten :(
Zitat:
|
Re: [PHP] *.html Dateien auslesen und verarbeiten :(
Mal etwas Code:
Code:
Nun hast du in $FileNames alle Dateinamen ohne Extension, aber nur von den Dateien, die auf .html enden (*.html).
<?php
$hDir = "ordner/"; // Dein Ordner $hHandle = opendir($hDir); // Handle zum Ordner $FileNames = Array(); // Array initialisieren // In einer Schleife alle Dateien holen, die zugelassen sind while($file == readdir($hHandle) && $file != "." && $file != ".." && substr($file, -5) == ".html" && is_file($file)) { $FileNames[] = substr($file, strlen($file)-5); // Dateinamen in Array einlesen } closedir($hHandle); // Handle wieder schließen ?> Das kannst du nun umbauen und dadurch die Ausgabe erzeugen. air |
Re: [PHP] *.html Dateien auslesen und verarbeiten :(
Also ich würds so machen:
Code:
^^Nicht getstet, also bestimmt Fehler drin, sollte aber so funktionieren.
<?php
//öffnen des ordners $handle=opendir("derordner/"); $daten = array(); //auslesen der dateien while ($file = readdir($handle)) { //datum aus dateinamen filtern $datum = split('-',$file); $jahr = $datum[0]; $monat = $datum[1]; $tag1 = $datum[2]; $tag = $tag[0].$tag[1]; //timestamp erzeugen $timestamp = mktime(0,0,0,$monat,$tag,$jahr); //ab ins array :) $daten[] = $timestamp; } closedir($handle); //sortieren sort($daten); reset($daten); //Array-daten zählen $gesammt = count($daten); //ausgeben for($i=0; $i<$gesammt; $i++) { $tag = date('j',$daten[$i]); $monat = date('n',$daten[$i]); $jahr = date('Y',$daten[$i]); $dateiname = $jahr.'-'.$monat.'-'.$tag.'.html'; echo '[url="'.$dateiname.'"]News vom '.$tag.'.'.$monat.'.'.$jahr.'[/url] '; } ?> |
Re: [PHP] *.html Dateien auslesen und verarbeiten :(
mensch, ihr seid einfach genial!
ich werds dann gleich mal ausprobieren! :) |
Re: [PHP] *.html Dateien auslesen und verarbeiten :(
Zum Testen, ob die Datei dem Schema folgt, (und dann auch gleich zum splitten) könnte man auch Reguläre Audrücke verwenden:
etwa so:
Code:
LG
//while...
if(preg_match("/([0-9]{4})\-([0-9]{2})\-([0-9]{2})\.html/", $file, $treffer)) { echo "News vom {$treffer[3]}.{$treffer[2]}.{$treffer[1]} [{$file}]"; } //... |
Re: [PHP][Gelöst] *.html Dateien auslesen und verarbeiten :(
gut, musste zwar noch ein wenig herumtüfteln, aber schließlich kam das raus:
Code:
funktioniert einwandfrei :thumb:
<?php
//öffnen des ordners $handle=opendir("news/"); $daten = array(); //auslesen der dateien while ($file = readdir($handle)) { if(preg_match("/([0-9]{4})\-([0-9]{2})\-([0-9]{2})\.html/", $file, $treffer)) { //datum aus dateinamen filtern $datum = split('-',$file); $jahr = $datum[0]; $monat = $datum[1]; $tag = $datum[2]; //$tag = $tag[0].$tag[1]; //timestamp erzeugen $timestamp = mktime(0,0,0,$monat,$tag,$jahr); //ab ins array :) $daten[] = $timestamp; } } closedir($handle); //sortieren rsort($daten); reset($daten); //Array-daten zählen $gesammt = count($daten); $tag2 = array(); $monat = array(); $jahr = array(); //ausgeben for($i=0; $i<$gesammt; $i++) { $tag2[$i] = date('d',$daten[$i]); $monat[$i] = date('m',$daten[$i]); $jahr[$i] = date('Y',$daten[$i]); $dateiname = $jahr[$i].'-'.$monat[$i].'-'.$tag2[$i].'.html'; echo "<a href='news/".$dateiname."'>News vom ".$tag2[$i].". ".$monat[$i]."."; } ?> |
Re: [PHP][Gelöst] *.html Dateien auslesen und verarbeiten :(
Ein Hinweis zur deutschen Grammatik:
Es heißt Gesamt und nicht Gesammt ;) air |
Re: [PHP][Gelöst] *.html Dateien auslesen und verarbeiten :(
Solange es geht ist das doch egal...besser als es i zu nennen ;)
|
Re: [PHP][Gelöst] *.html Dateien auslesen und verarbeiten :(
Ich bin nie zufrieden zu stellen :zwinker:
Mein Vorschlag (durch die RegExp wird der Teil sowieso schon herausgesucht):
Code:
Am besten lässt man das $gesam(m)t überhaupt weg, wenn's nur einmal verwendet wird. Dann kann sich auch kein Airblader beschweren :wink:
<?php
//öffnen des ordners $handle=opendir("news/"); $daten = array(); //auslesen der dateien while ($file = readdir($handle)) { if(preg_match("/([0-9]{4})\-([0-9]{2})\-([0-9]{2})\.html/", $file, $treffer)) { //timestamp erzeugen $daten[] = mktime(0,0,0,$treffer[2],$treffer[3],$treffer[1]); } } closedir($handle); //sortieren rsort($daten); reset($daten); //ausgeben for($i=0; $i<$count($daten); $i++) { echo "<a href=\"news/".date('Y-m-d',$daten[$i]).".html\">News vom ".date('d',$daten[$i]).". ".date('m',$daten[$i]).".</a>"; } ?> Übrigens, am Schluss sollte der a-Tag auch geschlossen werden... Liebe Grüße, und ich hoffe, dass du mir nicht allzu böse bist, wenn ich immer das letzte Wort haben will :zwinker: (Ich weiß, ich sollte den Spruch etwas beherzigen: »Wenn du bei einem Streit das letzte Wort haben willst, dann sag doch mal: >Ich glaube, du hast recht<!«), Gerhard Edit: Ich liebe das Kompakte; also wenn eine Variable definiert, aber nur einmal verwendet wird, dann schreibe ich den Wert lieber gleich unten hin :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz