Frage zu readdir sort

Hollly

Grünschnabel
Habe folgendes Problem, ich lese ein Verzeichnis + den <TITEL> aus.
Funktioniert auch soweit, möchte aber in der Anzeige den TITEL sortiert ausgeben!
> Habe auch schon diverse Tests mit Array schreiben versucht, klappt nicht!
> Vielleicht hat jemand einen Ansatz wie es funktionieren könnte

Hier das Script:

PHP:
function CheckExt($filename, $ext) {
$passed = FALSE;
$testExt = "\.".$ext."$";
if (eregi($testExt, $filename)) {
$passed = TRUE;
}
return $passed;
}

//Dateien zulassen

$exts = array("htm","php");
$dir = opendir(".");

$files = readdir($dir);


while (false !== ($files = readdir($dir))) {

foreach ($exts as $value) {
if (CheckExt($files, $value)) {


$data = implode("", file($files));
if (preg_match("/<title>(.*)<\/title>/i", $data, 
$title)) { $titelzeile = $title[1]; }
//sort($titelzeile);
echo " <a href=\"$files\">$titelzeile</a></td></tr>";
$count++; 
break; 
}
}
}
closedir($dir);
 
Zuletzt bearbeitet von einem Moderator:
Du musst zuerst den Array Titelzeile komplett füllen,bevor du ihn sortierst und ausgibst....momentan hat er nur ein
Element und das wird bei jeder gefundenen Datei überschrieben.
PHP:
<?php

$exts = array("htm","php");
$dir = opendir(".");
$files = readdir($dir);
$titelzeile=array();
while (false !== ($files = readdir($dir)))
	{
	foreach ($exts as $value)
		{
		if (CheckExt($files, $value))
			{
			$data = implode("", file($files));
			if (preg_match("/<title>(.*)<\/title>/i", $data,$title))
				{
				$titelzeile[$files]= $title[1];
				}
			}
		}
	}
closedir($dir);
asort($titelzeile);
foreach($titelzeile as $url=>$titel)
	{
	echo '<a href="'.$url.'">'.$titel.'</a><br />';
	}
?>
.....so sollte es gehen. $titelzeile ist dabei ein assoziativer Array... key ist jeweils die URL der Datei,da du die ja Für die Ausgabe auch noch brauchst :)
 
Vielen Dank erstmal!

War ein super Ansatz!

Habe jenen Ansatz noch modifiziert jetzt funktioniert es

Hier der finale CODE:

<?php

function CheckExt($filename, $exts) {
$passed = FALSE;
$testExt = "\.".$exts."$";
if (eregi($testExt, $filename)) {
$passed = TRUE;
}
return $passed;
}

$exts = array("html","php3");
$dir = opendir(".");
$files = readdir($dir);
$titelzeile=array();
while (false !== ($files = readdir($dir)))
{
foreach ($exts as $value)
{
if (CheckExt($files, $value))
{
$data = implode("", file($files));
if(eregi("<title>(.*)</title>", $data, $title))
{
$titelzeile[$files]= $title[1];
}
}
}
}
closedir($dir);
asort($titelzeile);
foreach($titelzeile as $url=>$titel)
{
echo '<a href="'.$url.'">'.$titel.'</a><br />';
}
?>
 
Zurück