PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Komischer PHP Fehler


Kinman
2005-01-14, 13:45:14
Hi, ich habe folgende Funktion geschrieben:


function getFilesFromDir($dir, $extension)
{
$dh = opendir($dir);

while (false !== ($filename = readdir($dh)))
{
$files[] = $filename;
}

for ($i = 2; $i < count($files); $i++)
{
if ($extension != "")
{
if (strcasecmp(substr($files[$i], strlen($files[$i])-strlen($extension), strlen($files[$i])),$extension) == 0)
{
$retfiles[$i-2] = $files[$i];
}
}
else
{
$retfiles[$i-2] = $files[$i];
}

}
return $retfiles;
}


under verwende sie so:


$f = getFilesFromDir("../graphics/gallery/",".jpg");

for ($i = 0; $i < count($f); $i++)
{
echo($f[$i] . "<br>");
}


Wenn ich als extension nichts oder .jpg angeben, funktioniert sie, sonst nicht.

mfg Kinman

mithrandir
2005-01-14, 14:18:52
Dere!

Versuch's mal so:

<?php
function getFilesFromDir( $dir, $extension )
{
$dh = opendir( $dir );

while ( false !== ( $filename = readdir( $dh ) ) )
{
$files[] = $filename;
}

for ( $i = 2; $i < count( $files ); $i++ )
{
if ( $extension != "" )
{
if ( strpos( $files[$i], $extension ) > 0 )
{
$retfiles[$i-2] = $files[$i];
}
}
else
{
$retfiles[$i-2] = $files[$i];
}
}
return $retfiles;
}

$extension = $_GET['ext'];

if ( ! isset( $extension ) ) $extension = "";

$f = getFilesFromDir( ".", $extension );

foreach ( $f as $filename )
{
echo( "$filename <br>" );
}
?>

Ist zwar auch nicht optimal, aber funktioniert IMO ausreichend...

bye, mith

Kinman
2005-01-14, 14:32:38
thx, man muss nur strrpos nehmen, sonst kanns bei solchen dateien:
bla.txt.jpg
zu problemen kommen

mfg Kinman

ne0
2005-01-14, 14:39:23
ich habe den code nur überflogen, aber wäre nicht glob (http://www.php.net/glob) das bessere/einfachere?

Kinman
2005-01-17, 11:15:46
ich habe den code nur überflogen, aber wäre nicht glob (http://www.php.net/glob) das bessere/einfachere?


Super, danke, das ist genau das was ich brauche!!

mfg Kinman