array: Paad des ersten Ordners von mehreren ausgeben

Dir werden alle Ordner mit dem Präfix kat1_ ausgegeben (in alphabetischer Reihenfolge).
Du hast doch folgende Ordnerstruktur, oder?:
Code:
hallo
|
|--kat1_test (Ordner)
|--kat2_test (Ordner)
|--kat3_test (Ordner)


PS: Vielen Dank für den Kommentar zur Klasse. Wenn du willst, kannst du den Kommentar auch beim Blogeintrag posten ;) :D
 
Mach ich gerne ; )

Ahhh Missverständnis gefunden:

./hallo/
kat1_Neubaugebiet
kat2_Immobilie
kat1_Altbau
kat1_Wohnung
kat3_ein Projekt
kat3_bla
kat1_test
...

(Alle liegen in einer Ebene! in dem Ordner ./hallo/)
so, jetzt klick ich bei mir auf der hp auf den button "kategorie 1" und jetzt soll nicht nur die ordnerliste mit allen projekten mit dem anfang kat1_ angezeigt werden (das klappt wunderbar mit pregmatch), sondern direkt das erste projekt aufgerufen werden. dafür brauch ich aber den jeweiligen Pfad für das erste Projekt kat1_ kat2_ kat3_
Also wenn ich in Kategorie 1 bin brauch ich den Pfad zum ersten Projekt, wenn ich in Kategorie 2 bin brauch ich den Pfad zum ersten Projekt von kategorie 2 ...
 
Ok, so müsste es funktionieren:
PHP:
function GetCategoryDirs($path, $prefix) 
{ 
  $DirContent = scandir($path); 

  $FoundItems = array();   

  foreach ($DirContent as $Item) 
  { 
    if (in_array(strtolower(substr($Item,0,strlen($prefix))), $prefix) 
    { 
       $FoundItems[] = $path."/".$Item; 
    } 
  } 
  return $FoundItems; 
} 

$CatDirs = GetCategoryDirs("./hallo/", "kat1_");

ShowCategory ($CatDirs[0]);  // Erste Kategorie anzeigen

PS: Was soll eigentlich der Thread-Titel bedeuten? Du hast dich wohl verschrieben ;)
 
Zuletzt bearbeitet:
Wenn ich das in mein Skript einbaue wird
Parse error: syntax error, unexpected '{' in "das Skript von Oben" on line 8
angezeigt.

Ohne die Funktion läuft mein Skript.
Ich seh da jetzt bei Deiner Funktion aber keinen Syntaxfehler ? oder Du ?
 
Zuletzt bearbeitet:
Sorry, ich habe ihn gerade bemerkt.
Ich hatte eine Klammer bei der IF-Anweisung vergessen. So ist es richtig:
PHP:
function GetCategoryDirs($path, $prefix) 
{ 
  $DirContent = scandir($path); 

  $FoundItems = array();   

  foreach ($DirContent as $Item) 
  { 
    if (in_array(strtolower(substr($Item,0,strlen($prefix))), $prefix) 
    { 
       $FoundItems[] = $path."/".$Item; 
    } 
  } 
  return $FoundItems; 
} 

$CatDirs = GetCategoryDirs("./hallo/", "kat1_");

ShowCategory ($CatDirs[0]);  // Erste Kategorie anzeigen
 
funktioniert leider immernochnicht, aber wenn ich mich nicht irre, ist das original der gleiche code, den Du vorher schon mal geposted hast.

So funktioniert, wie Du geschrieben hast fehlt am ende der if abfrage noch eine Klammer.

Super besten Dank für die Hilfe !
 
Zuletzt bearbeitet:
Mist, hab noch ne Frage:

Beim Ausführen der Funktion kommt die Fehlermeldung:

Fatal error: Call to undefined function: scandir() in (im Skript oben) on line 3

Ich habe auch schon einen Absoluten Pfad vergeben, es ändert sich aber nichts an der Fehlermeldung ...
 
Welche PHP-Version hast du denn? scandir() gibt es erst seit PHP 5.
Du kannst es aber auch so umgehen:
PHP:
function a_scandir($dir)
{
  if (!is_dir($dir))
  {
    return false;
  }
  $handle = opendir($dir);
  $entries = array();
  while ($entry=readdir($handle))
  {
     $entries[] = $entry;
  }
  closedir($handle);
  sort($entries, SORT_STRING);
  return $entries;
}
Diese Funktion funktioniert ab PHP 4.
 
Zurück