Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP][Gelöst] *.html Dateien auslesen und verarbeiten :( (https://www.delphipraxis.net/49821-%5Bphp%5D%5Bgeloest%5D-%2A-html-dateien-auslesen-und-verarbeiten.html)

Master_RC 16. Jul 2005 12:21


[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]

phXql 16. Jul 2005 14:09

Re: [PHP] *.html Dateien auslesen und verarbeiten :(
 
Zitat:

Zitat von Master_RC
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]

Such mal in SelfPHP nach opendir(), readdir() und closedir(). Mit diesen Funktionen sollte das zu machen sein.

dahead 16. Jul 2005 14:13

Re: [PHP] *.html Dateien auslesen und verarbeiten :(
 
och, falsche Rubrik, falsche Antwort, sorry.

Master_RC 16. Jul 2005 14:23

Re: [PHP] *.html Dateien auslesen und verarbeiten :(
 
Zitat:

Zitat von phXql
Such mal in SelfPHP nach opendir(), readdir() und closedir(). Mit diesen Funktionen sollte das zu machen sein.

ich habs schon selbst versucht, klappt aber nicht so ganz... :'(

phXql 16. Jul 2005 14:26

Re: [PHP] *.html Dateien auslesen und verarbeiten :(
 
Zitat:

Zitat von Master_RC
Zitat:

Zitat von phXql
Such mal in SelfPHP nach opendir(), readdir() und closedir(). Mit diesen Funktionen sollte das zu machen sein.

ich habs schon selbst versucht, klappt aber nicht so ganz... :'(

dann geh auf php.net, und lad dir dort das CHM für die PHP-Hilfe runter. dort is bei readdir() auch ein beispiel dabei..

Airblader 16. Jul 2005 15:12

Re: [PHP] *.html Dateien auslesen und verarbeiten :(
 
Mal etwas Code:

Code:
<?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
?>
Nun hast du in $FileNames alle Dateinamen ohne Extension, aber nur von den Dateien, die auf .html enden (*.html).

Das kannst du nun umbauen und dadurch die Ausgabe erzeugen.

air

Neuni 16. Jul 2005 15:14

Re: [PHP] *.html Dateien auslesen und verarbeiten :(
 
Also ich würds so machen:
Code:
<?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]
';

}


?>
^^Nicht getstet, also bestimmt Fehler drin, sollte aber so funktionieren.

Master_RC 16. Jul 2005 15:35

Re: [PHP] *.html Dateien auslesen und verarbeiten :(
 
mensch, ihr seid einfach genial!

ich werds dann gleich mal ausprobieren! :)

Delphi-Freak 16. Jul 2005 15:49

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:
//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}]";
}
//...
LG

Master_RC 16. Jul 2005 20:26

Re: [PHP][Gelöst] *.html Dateien auslesen und verarbeiten :(
 
gut, musste zwar noch ein wenig herumtüfteln, aber schließlich kam das raus:

Code:
<?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].".";

}


?>
funktioniert einwandfrei :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz