Archiv verlassen und diese Seite im Standarddesign anzeigen : In Unbekanntes Verzeichnis springen?
Wenn ich jetzt mit PHP in das Verzeichnis "mozilla/firefox/profiles/" wechsel, hab ich dort noch ein angelegtes Nutzerprofil, doch dieses hat ja immer einen unterschiedlichen Namen. Wie wechsel ich nun in dieses Verzeichnis?
Mh... Ich habe gerade wenig Zeit, um das zu prüfen. Wenn ich nicht irre liegen da noch mehr Standardordner, oder? Diese lädst Du in ein Array:
$folders = array("Ordner1","Ordner2");
Nun öffnest Du das Verzeichnis per
$handle = opendir($dir);
$dir erhält natürlich vorher den Wert von dem Verzeichnis, was Du öffnen möchtest (mozilla/firefox/profiles). Und zwar den genauen Pfad.
Dann liest Du das Verzeichnis in einer Schleife aus:
while($file = readdir($dir)) {
if($file != "." AND $file != ".." AND !in_array($file,$folders) AND is_dir($file)) {
$new = $file;
}
}
Die If-Abfrage prüft, ob es sich bei $file um "." oder ".." handelt, was ja die Verzeichnisverweise sind. Außerdem wird geprüft, ob es ein Verzeichnis ist und, ob der Name dieses Verzeichnises _nicht_ in dem Array mit den anderen Ordnernamen vorkommt. Wenn alles zutrifft ist es das Verzeichnis, was Du suchst. Dann das alte Verzeichnis schließen und das neue öffnen:
closedir($handle);
unset($handle);
$handle = opendir($new);
War das das, was Du wolltest?
EDIT: Ach... Wenn ich nicht irre heißt das Verzeichnis immer, wie der angemeldete Nutzer.
Dann geht es auch so. Ich glaube, das geht jedoch entweder nur bei Windows oder nur bei Linux... Bin ich gerade nicht sicher:
$dir = "blabla/mozilla/firefox/profiles/".get_current_user();
$handle = opendir($dir);
Funktion: get_current_user() im PHP-Manual *klick* (http://de2.php.net/manual/de/function.get-current-user.php).
EDIT 2: Du könntest auch per
$win = strtolower(substr(PSP_OS,0,3));
prüfen, ob Win oder Linux installiert ist. Im ersten Fall wäre $win = win. Einfach beide Codes in einer IF-Abfrage je nach OS ausführen... Der Verzeichnispfad wird auch je nach OS durch das Laufwerk erweitert.
Oh, sehr hilfreich. Danke.
EDIT: Achja, du täuschst dich. Dieses Verzeichnis hat einen Random Namen und nicht den Namen des angemeldeten Benutzers.
blackberry
08.06.2009, 10:33
In PHP5 gibt es auch die Funktion scandir.
http://de3.php.net/scandir
Naja ScanDir schön und gut. Finde da nur erstmal das Verzeichnis, was Du suchst. Geht genauso gut, mit Readdir und den Bedingungen, die ich genannt habe.
Aber mit Scandir würde es vielleicht einfacher. So in etwa:
<?php
$dir = "/mozilla/firefox/profiles";
$folders = array("Soll nicht vorkommen","auch nicht","eben so wenig");
$files = scandir($dir);
foreach($files AS $datei) {
if($datei != "." AND $datei != ".." AND !in_array($datei,$folders) AND is_dir($file)) {
$found = $datei;
}
}
print "The name of the folder you looked for is ".$found."!";
?>
Ob das nun komfortabler ist oder eher nicht wäre so eine Frage. Ich würde aber wohl die zweite Methode bevorzugen. Danke BlackBerry, die Funktion kannte ich noch nicht :).
Okay, werde ich heute mal ausprobieren. (:
der name ist iwo in der registry und in der profiles.ini
Joa, steht in der profiles.ini:
[Profile0]
Name=default
IsRelative=1
Path=Profiles/xxxx.default
In der registry hab ich bisher nichts gefunden.
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.