SNOWMAN Geschrieben 5. September 2005 Geschrieben 5. September 2005 Hi, ich hab die Ehere und darf einen Dateibaum generieren. Meine Quelldaten sind so gemacht, das Unterordner ein Space mehr vorrangestellt haben als der Ordner in dem ise sich befinden: firefox/ nummerZwei.txt profiles.ini pluginreg.dat 8nm3l3bk.default/ search.rdf localstore.rdf bookmarks.bak defaults.ini mimeTypes.rdf compatibility.ini US/ bookmarks.html lock prefs.js bookmarks.html xpti.dat formhistory.dat ich bastel das hin und her, aber mein eignetliches Problem: Wie muss mein RegEx aussehen, damit ich ein preg_match(_all) machen kann um die anführenden Spaces zu zählen? Gibts vllt noch andere möglichkeiten? Mein aktueller RegEx sieht so aus: preg_match_all("/(\s+$)/",... aber das funzt irgendwie nich, ich bekomm da immer verschachtelte Arrays zurück. array1( 1 => Name, 2 => array( 1 => Name, 2 => array( 1 => Name), 3 => name) 3=> Name); array2 (1 => Name2, 2=> array( 1 => Name2 ... Zitieren
Monty82 Geschrieben 5. September 2005 Geschrieben 5. September 2005 preg_match_all("/(\s+$)/",... Habe ich Dich richtig verstanden? --> foreach ($dirlistArr as $key=>$val) { if (preg_match("/^( *)(.*)$/",$val,$pregRes)) { $anzahlSpaces = strlen($pregRes[1]); echo "Die Datei ".$pregRes[2]." hat ".$anzahlSpaces." Spaces im Dateinamen. "; } } Zitieren
SNOWMAN Geschrieben 5. September 2005 Autor Geschrieben 5. September 2005 DANKE! also dein RegEx funktioniert super! Allerdings mach ich das ganze mit preg_match_all da preg_match, soweit ich de.php.net verstnadne hab, nur bis zum ersten fundsucht und dann abbricht. im großen und ganzen siehts nu so aus: $handle = fopen($filename, "r"); while($line = fgets($handle)){ preg_match_all("/^( *)(.*)$/",$line, $actspaces); $linedepth = strlen($actspaces[1][0]); #Verarbeitung der Daten } [/php] Zitieren
Monty82 Geschrieben 5. September 2005 Geschrieben 5. September 2005 Hast Du nicht pro Zeile genau einen Dateinamen? Dann brauchst Du kein preg_match_all()... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.