sortieren nach datum

habe absolut keine ahnung wie das funktioniert!

am besten ich poste mal den sourcecode:

PHP:
<?PHP
$verz = dir("txtdb/aktuell/");

$txt = array();

while($entry=$verz->read())
{
	$txt[] = "txtdb/aktuell/".$entry;
}
array_shift($txt);  //pfad punkt wird gelöscht aus array (.) -> i.o.
array_shift($txt);  //verzeichnis punkte werden gelöscht aus array (..) -> i.o.

//Table beginn -> i.o.
echo "<table width='100%' border='0'>";
echo "<tr><td width='5%'></td>";
echo "<td width='625' height='15'><h1>News:</h1></td>";
echo "<td width='5%'></td></tr>";


//Ordnerinhalt in tabelle eingefügt -> i.o.
for($y=0;$y<count($txt);$y++)
{
	//Dateiname, für ausgabe als titel -> i.o.
	$map = $txt[$y]; 

	$maplink =  $map;
	$fp = fopen($maplink,"r");

	if ($fp)
		{
			
			//Tabellenfelder -> i.o.
			echo "<tr><td width='5%'></td><td width='625'>";
			echo "<fieldset><legend>" .$map. "</legend><p>";
			
	
			while (!feof($fp))
			{
				$zeile = fgets($fp, 1000);
				echo "$zeile";
			}
		
		echo "</td><td width='5%'></td></tr><tr><td width='5%'>";
		echo "</td><td width='625' height='15'></td><td width='5%'></td></tr>";
		

		fclose($fp);
		}

	else
	{
		echo "Datei: " .$map. " nicht gefunden";
	}
}
$verz->close();


//Table end -> i.o.
echo "</table>";
?>

alles läuft einwandfrei!

so wie es jetzt geschrieben ist werden die dateien nach alphabet geordnet.
ich möchte aber, dass die daten nach datum sortiert werden(filemtime)

hoffe es so kommen wir weiter :)
 
Also ich hab jetzt ein bisschen rumprobiert, hab es fast geschafft, hatte aber keinen Bock mehr weiterzumachen, also, es wird jetzt von jeder datei, das erstellungsdatum ausgegeben und dies in der richtigen reihenfolge, nun wird es wohl nicht mehr so schwer sein den Rest zu machen.

PHP:
PHP:--------------------------------------------------------------------------------

<?PHP
$verz2 = "/Eigene Dateien/php/NitroFlashBoard/";
$verz = dir($verz2);



while($entry=$verz->read())
{
    $txt[] = "$verz2".$entry;
}
array_shift($txt);  //pfad punkt wird gelöscht aus array (.) -> i.o.
array_shift($txt);  //verzeichnis punkte werden gelöscht aus array (..) -> i.o.

//Table beginn -> i.o.
echo "<table width='100%' border='0'>";
echo "<tr><td width='5%'></td>";
echo "<td width='625' height='15'><h1>News:</h1></td>";
echo "<td width='5%'></td></tr>";


 foreach($txt as $elem){
        
        $datum[]= filectime($elem);
        
        }
       arsort($datum);
         foreach($datum as $time){
            echo " => " .strftime("%d  %m %X",$time) ."<br>" ;
            }

//Ordnerinhalt in tabelle eingefügt -> i.o.
for($y=0;$y<count($txt);$y++)
{
    //Dateiname, für ausgabe als titel -> i.o.
    $map = $txt[$y]; 

    
    $fp = fopen($map,"r");
       
        
        
    if ($fp)
        {
            
            //Tabellenfelder -> i.o.
            echo "<tr><td width='5%'></td><td width='625'>";
            echo "<fieldset><legend>" .$map. "</legend><p>";
            
    
            while (!feof($fp))
            {
            
                $zeile = fgets($fp, 1000);
                echo $zeile;
            }
        
        echo "</td><td width='5%'></td></tr><tr><td width='5%'>";
        echo "</td><td width='625' height='15'></td><td width='5%'></td></tr>";
        

        fclose($fp);
        }

    else
    {
        echo "Datei: " .$map. " nicht gefunden";
    }
}
$verz->close();


//Table end -> i.o.
echo "</table>";
?>

--------------------------------------------------------------------------------
 
soweit bin ich jetzt auch gekommen :)
nur ist die knacknuss is jetzt beim übergang
vom sortierten datum zur datei!!

das findet ja kein ende...............
 
Zuletzt bearbeitet:
wenn deine txt dateien von irgend nem script erstellt werden, dann hau in den dateinamen einfach noch aktuelle zeit ( time() ) rein.
nach der kannst du dann sortieren. (unschöne variante.. aber was solls)
 
guter vorschlag godwich!

leider hab ich mir die ganze sache schonma durch den kopf gehn lassen, abr das ziel währe eigentlich gewesen, dass die txt dateien den titel tragen, der auf der page angezeigt wird.... :(

ich danke auf jedenfall für die guten ratschläge die zusammengekommen sind! :):):)

habe offenes ohr (augen) auf weitere einfälle/hilfen

tnx
 
es gibt doch bestimmt genügend Profis die das schon gemacht haben , außerdem würde es mich auch interessieremn wie das geht.:-)
 
Versuche es doch einfach mal damit:
PHP:
<?PHP
$verz = dir("txtdb/aktuell/");

$txt = array();

while($entry=$verz->read())
{
    $txt[filectime("txtdb/aktuell/".$entry)] = "txtdb/aktuell/".$entry;
}
array_shift($txt);  //pfad punkt wird gelöscht aus array (.) -> i.o.
array_shift($txt);  //verzeichnis punkte werden gelöscht aus array (..) -> i.o.
rsort($txt);

//Table beginn -> i.o.
echo "<table width='100%' border='0'>";
echo "<tr><td width='5%'></td>";
echo "<td width='625' height='15'><h1>News:</h1></td>";
echo "<td width='5%'></td></tr>";


//Ordnerinhalt in tabelle eingefügt -> i.o.
for($y=0;$y<count($txt);$y++)
{
    //Dateiname, für ausgabe als titel -> i.o.
    $map = $txt[$y]; 

    $maplink =  $map;
    $fp = fopen($maplink,"r");

    if ($fp)
        {
            
            //Tabellenfelder -> i.o.
            echo "<tr><td width='5%'></td><td width='625'>";
            echo "<fieldset><legend>" .$map. "</legend><p>";
            
    
            while (!feof($fp))
            {
                $zeile = fgets($fp, 1000);
                echo "$zeile";
            }
        
        echo "</td><td width='5%'></td></tr><tr><td width='5%'>";
        echo "</td><td width='625' height='15'></td><td width='5%'></td></tr>";
        

        fclose($fp);
        }

    else
    {
        echo "Datei: " .$map. " nicht gefunden";
    }
}
$verz->close();


//Table end -> i.o.
echo "</table>";
?>

wie Du siehst brauchst Du nur 2 Zeilen ändern und es sollte funzen
Cu und viel Spaß
Major
 
Danke Danke DANKE!!!!!!!

Major du GOTT (fast)

wenn da nicht der kleine befehlwäre ($entry)

PHP:
<?PHP
....
while($entry=$verz->read())
{
    $txt[(filectime("txtdb/aktuell/".$entry)).$entry] = "txtdb/aktuell/".$entry;
}
array_shift($txt);  //pfad punkt wird gelöscht aus array (.) -> i.o.
array_shift($txt);  //verzeichnis punkte werden gelöscht aus array (..) -> i.o.
rsort($txt);
....
?>
kleine ergänzung für Nitromaus



für alle die daa 'bissl' mitgewirkt haben DANKE ich nochmal.

greez

N
O
X
 
will nich nochma ein neues thema eröffnen

darum schreib ichs hier rein:

leider (logischerweise) wird der gesammte pad inkl. atribut als titel angezeigt
-> sieht schei-sse aus

bsp:
txtdb/aktuell/event 2002.txt

sollte aber nur 'event 2002' stehen!

wie kann ich das umgehen?

PHP:
  if ($fp)
        {
            
            //Tabellenfelder -> i.o.
            echo "<tr><td width='5%'></td><td width='625'>";
            echo "<fieldset><legend>" .$map. "</legend><p>"; // $map steht für titel (den restlichen sourcecode findet ihr anhand der beiträge oben)
            
    
            while (!feof($fp))
            {
                $zeile = fgets($fp, 1000);
                echo "$zeile";
            }
        
        echo "</td><td width='5%'></td></tr><tr><td width='5%'>";
 
mit ner regular Expression:

$newmap = preg_replace("/^.*\/$/","",$map);

ich weiss es jetzt nicht genau, da ich hier gerade kein PHP zu laufen habe, aber versuche es mal so.

Cu Major
 
Zurück