FTP suche !

m4aKilling

Grünschnabel
Hallo

Ich suche ein script womit ich auf meinem ftp server nach einer datei per php suchen kann. Habe da zwar sowas inder art gefunden nur bräuchte ich da ein fenster wo ich selber denn namen eingeben kann. So das auch andere nach dateien suchen können da ich keine mysql benutze da ich zuviele dateien habe.

hier mal das script

<?php
/* ---------------------------------------------------------------

list_files(); - Sucht nach Dateien ab geschwünschten Pfad.
cmpFilename(); - Vergleicht zwei Dateien miteinander.

--------------------------------------------------------------- */
?>
<html>
<head>
<title>list_files</title>
</head>
<body>


<?php
// --- Scan ---
$files = array();
$igndir = "testfile2.htm"; // Ignorierte Dateien / Verzeichnisse
list_files( $files, ".", "*.htm*", $igndir );


// --- Output ---
foreach( $files as $filename )
{
echo( "<a href=\"" . $filename . "\">" . $filename . "</a><br>" );
}
?>


</body>
</html>


<?php
/* ------------------------------------------------------------
list_files() - V1.1

Sucht nach allen Dateien in allen unterverzeichnissen ab
einem bestimmten Verzeichnis.

Parameter:
&$files = Pointer auf Dateinamenarry. liefert
zusätzlich das Verzeichnis der gefundenen
Datei ab dem Startverzeichnis.
$path = Startpfad
$searchfile = Suchtyp z.b. (*.*)
&$igndir = Verzeichnisliste zum Ignorieren. Array/String
Return:
0 >= Anzahl gefundener Dateien.
-1 = Falsche Parameterübergaben.
-2 = Verzeichnis konnte nicht eingelesen werden.
------------------------------------------------------------ */
function list_files(&$files, $path, $searchfile, &$igndir)
{
// Überprüfe Parameter
if($files == "" || $path == "" ||
$searchfile == "")
return (-1);

// Lese das Verzeichnis ein.
$directory = @opendir($path);
if($directory)
{
// Überspringe die Anfangszeichen "." und ".."
// in einem Verzeichnis
readdir ($directory);
readdir ($directory);

// Lese Verzeichnis aus.
while ($contentname = readdir($directory) )
{
// Stelle einen Verzeichnispfad zusammen
$pathname = $path . "/" . $contentname;


if( trim( getType( $igndir ) ) == "array" )
{
// Prüfe ob das einzulesende Verzeichnis nicht ignoriert
// werden soll.
$founddir = false;

for($iCounter=0; $iCounter < count($igndir) ;$iCounter++)
{
$founddir = strstr( $pathname, &$igndir[$iCounter] );
if($founddir)
{
$founddir = true;
break;
}
}
}
else
{
$rc = cmpFilename($contentname, $igndir );
if( $rc == 0 )
$founddir = true;
else
$founddir = false;
}


// Prüft ob dieser Pfad ein Verzechnis oder eine Datei ist.
if( is_dir($pathname) )
{
// Lese das Unterverzeichnis erneut ein, wenn es nicht in der
// Verzeichnisignorierliste steht.
if( $founddir == false )
list_files(&$files, $pathname, $searchfile, $igndir);
}
else
{
if( $founddir == false )
{
// Prüfe und merke den gefundenen Dateien.
$rc = cmpFilename($contentname, $searchfile);
if( $rc == 0 )
$files[ count($files) ] = $pathname;
}
}
}
}
else
{
echo("<font color=\"red\">Zugriff verweigert bei: " . $path . "</font><br>");
return (-2);
}

// Zähle die gefundenen Dateien.
return count($files);
}


/* ------------------------------------------------------------
cmpFilename() - V1.0a

Vergleicht einen Dateinamen mit einem String

Parameter:
&$filename = Dateinamen
&$compstring = Verlgeichsstring zum Dateinamen
Return:
0 = stimmt überein.
-1 = stimmt nicht überein
-2 = Leere Parameter.
-3 = Falsche Parameterübergaben.
------------------------------------------------------------ */
function cmpFilename($filename, $compstring)
{
if($compstring == "" || $filename == "")
return (-2);

if( ! strstr( $compstring , "." ) )
return (-3);


// Splitte den übergebenen Vergleichsstring
list($gfile, $gext) = explode(".", $compstring);

// Setzte einen Reqular Expression Dateinamen zusammen ohne Erweiterung
if($gfile == "" || $gfile == "*")
$regpartone = "[ -_a-zA-Z0-9]{0,40}";
else if(strstr( $gfile , "*" ))
{
$gfile = substr($gfile, 0, strlen($gfile) - 1);
$regpartone = $gfile . "[ -_a-zA-Z0-9]{0,40}";
}
else
$regpartone = $gfile;

// Setzte einen Reqular Expression Dateierweiterungsnamen zusammen
if($gext == "" || $gext == "*")
$regparttwo = "[_a-zA-Z0-9]{0,10}";
else if(strstr( $gext , "*" ))
{
$gext = substr($gext, 0, strlen($gext) - 1);
$regparttwo = $gext . "[_a-zA-Z0-9]{0,10}";
}
else
$regparttwo = $gext;

// Setzte den Reqular Expression String zusammen
$regstring = "^" . $regpartone . "." . $regparttwo . "$";


// Prüfe String mit Dateinamen
if ( ereg ($regstring, $filename) )
return (0);
else
return (-1);
}
?>
 
oder kennt einer eins wo das schon fertig ist ?

Also ich will das das script einen bestimmten Ordner auf dem ftp server durchsucht nach der datei wo man eingibt

wo bei windows wenn man eine datei sucht.
 

Neue Beiträge

Zurück