nchristoph
Erfahrenes Mitglied
wie sieht den dein $_POST['search_term'] aus?
Also wenn ich's mit print_r($_POST,true) ausgebe kommt nix.
PHP:
<table width="343" border="0">
<tr>
<td width="184" height="31"> </td>
<td width="149"> </td>
</tr>
<tr>
<form action="suche.php" method="post">
<td height="23"><label for="search_term">
<input name="search_term" type="text" id="search_term" size="40" />
</label></td>
<td><input type="submit" name="button" id="button" value="Suchen" /></td>
</form>
</tr>
</table>
<?php
$dir = 'O:\\Holz\\Masslisten';
$search = $_POST['search_term'];
//Alle Dateien in ein 2-Dimensionalen Array schreiben
$items = getDirContent($dir);
//Alle Dateien mit einem bestimmten Namen ausfiltern und in $result zurückgeben
$result = array();
foreach($items as $item){
if($item['name'] == $search){
$result[] = $item['path'];
}
}
//Ausgabe:
var_dump($result);
/**
* Rekursive Funktion um alle Dateien eines Verzeichnises zu katalogisieren
* @param String $dir zu durchsuchendes Verzeichniss
* @return Array<Array<String>>
* @example Return-Value: array('name'=>'test.txt', 'path'=>'C:temp/test.txt')
*/
function getDirContent($dir){
$items = array();
if (is_dir($dir)) {
foreach(scandir($dir) as $file){
$path = createPath($dir, $file);
if(is_dir($path) && $file!='.' && $file!='..'){
$items = array_merge($items, getDirContent($path));
}elseif(is_file($path)){
$items[] = array('name' => $file, 'path' => $path);
}
}
}
return $items;
}
/**
* Aus meiner Funktionsbibliothek
* PHP] createPath: http://wiki.yaslaw.info/wikka/PhpCreatePath
*
* mpl by ERB software
* @author stefan.erb(at)erb-software.com
*/
/**
* @param Strings zusammenzusetzende Elemente
* @return String
* @example
* $path = createPath("C:\\temp\\", "test.txt");
* $path = createPath("C:", "temp", "test.txt")
*/
function createPath(){
$parts = func_get_args();
array_walk($parts, 'removeLastSeparator');
return str_replace("\\", "/", implode("/", $parts));
}
/**
* Hilfsfunktion um die nachgestelltenn / und \ von Pfadelementen zu entfernen
* Wird von createPath() verwendet
* @param $part
*/
function removeLastSeparator(&$part){
$part = preg_replace('/[\/\\\]*$/', '', $part);
}
?>
Hab das gesamte, abgeänderte Script angehängt, mir ist kein Fehler aufgefallen. Jetzt rufe ich nur noch die suche.php auf und benutze nicht mehr die lästigen index.php?p=blabla links.