SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 18.05.2005, 09:56:37
rkersting rkersting ist offline
Anfänger
 
Registriert seit: Oct 2004
Beiträge: 11
Verzeichnisse und dateien mit PHP in Dateirechnten ändern

Hallo,

ich möchte alle Dateien und Verzeichnisse - auch die in den Verzeichnissen liegenden Unterverzeichnisse und darin liegende Dateien - mit vorgegebenen Werten für Dateien und Verzeichnisse in den Zugriffsrechten ändern.

Mein Gedanke hierzu war, ein rekursiv laufendes Script anzuwenden, welches in zwei dateien vorliegt:

Datei chmodausf.php:

<?php

# Diese Funktion aendert chmod aller Verzeichnisse und Dateien innerhalb des Verzeichnisses in dem sie aufgerufen wird
# Es bleiben lediglich die ausgeschlossenen Dateien unveraendert



$selfverz = ".";

$verz=opendir ($selfverz);
while ($file = readdir ($verz))
{
if($file != "." && $file != ".." && $file != "chmodausf.php" && $file != "chmodrmdir.inc.php" && $file != "index.php" && $file != ".htaccess" && $file != "cgi-bin" && $file != "webstats"){

$res = @chmod($file, 0766);
echo $file." geändert<br>";


// importiere die Datei mit der Funktion

require_once('chmodrmdir.inc.php');

// loesche alle Verzeichnisse
$res = rec_rmdir ($file);
// wurde das Verzeichnis korrekt gelöscht
switch ($res) {
case 0:
// das Verzeichnis wurde korrekt gelöscht
break;
case -1:
// das war kein Verzeichnis
break;
case -2:
// ein Fehler ist aufgetreten
break;
case -3:
// die Funktion ist über einen Dateityp gestolpert, den sie nicht kennt
break;
default:
// die Funktion hat irgend etwas zurückgegeben, was sie eigentlich nicht sollte
break;
}

}
}
closedir($verz);

?>


Datei 2 chmodrmdir.inc.php:

<?php

// rec_rmdir - durchwandere ein Verzeichnis rekursiv
// Rueckgabewerte:
// 0 - alles ok
// -1 - kein Verzeichnis
// -2 - Fehler beim Loeschen
// -3 - Ein Eintrag eines Verzeichnisses war keine Datei und kein Verzeichnis und
// kein Link
function rec_rmdir ($path) {
// schau' nach, ob das ueberhaupt ein Verzeichnis ist
if (!is_dir ($path)) {
return -1;
}
// oeffne das Verzeichnis
$dir = @opendir ($path);
echo $path." Pfad gefunden<br>";
// Fehler?
if (!$dir) {
return -2;
}

// gehe durch das Verzeichnis
while ($entry = @readdir($dir)) {
// wenn der Eintrag das aktuelle Verzeichnis oder das Elternverzeichnis
// ist, ignoriere es
if ($entry == '.' || $entry == '..') continue;
// wenn der Eintrag ein Verzeichnis ist, dann
if (is_dir ($path.'/'.$entry)) {
// rufe mich selbst auf
$res = rec_rmdir ($path.'/'.$entry);
// wenn ein Fehler aufgetreten ist
if ($res == -1) { // dies duerfte gar nicht passieren
@closedir ($dir); // Verzeichnis schliessen
return -2; // normalen Fehler melden
} else if ($res == -2) { // Fehler?
@closedir ($dir); // Verzeichnis schliessen
return -2; // Fehler weitergeben
} else if ($res == -3) { // nicht unterstuetzer Dateityp?
@closedir ($dir); // Verzeichnis schliessen
return -3; // Fehler weitergeben
} else if ($res != 0) { // das duerfe auch nicht passieren...
@closedir ($dir); // Verzeichnis schliessen
return -2; // Fehler zurueck
}
} else if (is_file ($path.'/'.$entry) || is_link ($path.'/'.$entry)) {
// ansonsten loesche diese Datei / diesen Link
$res = @unlink ($path.'/'.$entry);
// Fehler?
if (!$res) {
@closedir ($dir); // Verzeichnis schliessen
return -2; // melde ihn
}
} else {
// ein nicht unterstuetzer Dateityp
@closedir ($dir); // Verzeichnis schliessen
return -3; // tut mir schrecklich leid...
}
}

// schliesse nun das Verzeichnis
@closedir ($dir);

// versuche nun, das Verzeichnis zu aendern
$res = @chmod($path, 0777);
echo $path." geändert<br>";
// gab's einen Fehler?
if (!$res) {
return -2; // melde ihn
}

// alles ok
return 0;
}

?>

Die zweite Datei wird über Aufruf der ersten aufgerufen.

Leider funktioniert es nicht ....

1. Die 2. Datei wird nicht aufgerufen
2. Die erste datei findet Verzeichnisse als dateien
3. chmod wird nicht ausgeführt
4. es werden zufällig irgendwelche Verzeichnisse gefunden

... wie könnte es funktionieren?

Bitte um Hilfe.... vielen Dank
Mit Zitat antworten
  #2  
Alt 18.05.2005, 11:52:12
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Verzeichnisse und dateien mit PHP in Dateirechnten ändern

Wenn du die php-Tags des Boards verwendest, damit dein PHP-Code entsprechend farbig dargestellt wird, schaut sich sicherlich auch jemand dein Problem näher an.
Außerdem solltest du auf die @ verzichten, da du so keine möglichen Fehlermeldungen angezeigt bekommst.

Geändert von xabbuh (18.05.2005 um 11:52:45 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Apache2 parst keine PHP Dateien im virtuellen Host Tino Apache HTTP-Server 0 14.04.2005 17:51:26
dateien per php auf server laden Wesley PHP für Fortgeschrittene und Experten 11 15.10.2004 11:14:58
PHP Upload grosser Dateien / timeout NewGen PHP für Fortgeschrittene und Experten 2 17.05.2004 15:33:57
Verzeichnisse / Dateien umbenennen Marilu PHP Grundlagen 10 25.11.2003 15:50:04
Mit php im Intranet Dateien zw. Servern verschieben ap_rs PHP für Fortgeschrittene und Experten 0 17.12.2002 16:35:16


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:27:18 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt