ERLEDIGT
NEIN
NEIN
ANTWORTEN
15
15
ZUGRIFFE
628
628
EMPFEHLEN
-
16.06.02 11:36 #1
Hi leute,
ich habe ein Script geschrieben, das einen Ordner (und seine Unterordner) nach der Datei durchsuchen soll, die zuletzt geändert wurde.
Das problem ist nun, das sich das script nur eine Ebene weiter vor kämpft.
Bespiel: Ausgangsordner ist "c:/apache/htdocs/pfadihpserver" dann kommt es zwar nach "c:/apache/htdocs/pfadihpserver/admin" aber nicht mehr nach "c:/apache/htdocs/pfadihpserver/admin/feilchen" irgendwie scheint es daran zu liegen, dass er den ordner feilchen nicht als ordner betrachten sonder als datei... und ich hab keine Ahnung warum...
Hier ist mal das Script:tobPHP-Code:<?
$var1[zeit]=0;
$dir = "c:/apache/htdocs/pfadihpserver";
$lastModification = lastmodification($dir);
echo $lastModification[zeit];
echo $lastModification[datei];
function lastmodification($verzeichniss){
$dir = opendir($verzeichniss);
while ($datei = readdir($dir)){
if(is_dir($datei)){
if($datei != "." && $datei != ".."){
$datei = $verzeichniss."/".$datei."";
echo "<b>".$datei.":</b><br>";
lastmodification($datei);
}
}
else{
echo " -".$datei."<br>";
$stamp = filemtime($datei);
if ($stamp > $var1[zeit]){
$var1[zeit] = $stamp;
$var1[datei] = $datei;
}
}
}
return $var1;
}
?>
-
16.06.02 12:13 #2gecko Tutorials.de Gastzugang
das problem liegt in deinem is_dir:
nur, wenn das verzeichniss . oder .. heisst machst du einen rekursiven aufruf, du willst den aber bei jedem verzeichniss haben!PHP-Code:if(is_dir($datei)){
if($datei != "." && $datei != ".."){
$datei = $verzeichniss."/".$datei."";
echo "<b>".$datei.":</b><br>";
lastmodification($datei);
}
}
-
16.06.02 12:30 #3
hä,
ich hab da doch extra !=
if($datei*!=*"."*&&*$datei*!=*"..")
der muss die beiden verzeichnisse weglassen sonst dreht sich das script logischerweise im Kreis...
tob
-
16.06.02 12:58 #4gecko Tutorials.de Gastzugang
aehm, ja richtig, sorry ... hatte das nur schnell ueberflogen ... schau mir das nachher nochmal an
-
18.06.02 00:24 #5gecko Tutorials.de Gastzugang
bin gerade zu faul deine funktion ordentlich durchzugucken, auf jeden fall kann er bei dir nicht tiefer "crawlen" weil du ihm nie den kompletten pfad uebergibst, das script starten ja aus deinem "crawl-root" und den kompletten pfad von dort aus musst du immer mit uebergeben, wenn du tiefer gehen willst.
nimm sonst meine version, funktioniert perfekt
dort kannst du dann recht schnell deinen timestamp-check einbauen.PHP-Code:function crawlDir($DIRSRC)
{
$DIR = dir($DIRSRC);
while($FILE = $DIR->read())
{
if (is_file($DIRSRC.$FILE))
{
//perform file check blahblah ...
echo $DIRSRC.$FILE."<br>";
}
elseif (is_dir($DIRSRC.$FILE) && $FILE!="." && $FILE!="..")
{
crawlDir($DIRSRC.$FILE."/");
}
}
$DIR->close();
return true;
}
crawlDir("./");
-
18.06.02 11:06 #6
ich verstehe nicht was du meinst. ich übergebe ihm doch sogar den absoluten pfad:
aber ich schau mir deine Funktion mal an... vieleicht fällt dir ja auch noch was zu meiner ein ...PHP-Code:<?
$var1[zeit]=0;
$dir*=*"c:/apache/htdocs/pfadihpserver"; //<< hier der ausgangspfad
$lastModification*=*lastmodification($dir);
echo*$lastModification[zeit];
echo*$lastModification[datei];
function*lastmodification($verzeichniss){
****$dir*=*opendir($verzeichniss);
*********while*($datei*=*readdir($dir)){
*************if(is_dir($datei)){
*****************if($datei*!=*"."*&&*$datei*!=*".."){
********************$datei*=*$verzeichniss."/".$datei.""; // << und hier wird der nächst höhere ordner angehängt.
********************echo*"<b>".$datei.":</b><br>";
*******************lastmodification($datei); // und an die Funktion übergeben
*****************}
*************}
*************else{
******************echo*" -".$datei."<br>";
******************$stamp*=*filemtime($datei);
******************if*($stamp*>*$var1[zeit]){
**********************$var1[zeit]*=*$stamp;
**********************$var1[datei]*=*$datei;
******************}
*************}
*********}
*********return*$var1;
*********}
?>
tob
-
18.06.02 12:59 #7gecko Tutorials.de Gastzugang
das klappt aber bei dir nicht so ganz, lass dir doch am besten mal alles mit ausgeben oder probiers mal mit einem / am ende:
PHP-Code:$datei = $verzeichniss."/".$datei."/";
-
18.06.02 20:22 #8
so mein script ****t jetzt *freu*
aber leider bekomme ich immer wenn ich im obersten verzeichniss beginne zu scannen die Fehlermeldung: OpenDir: Permission denied (errno 13) in /www/htdocs/pfadfide/lastmodify.php on line 12
was nun ?
tob
-
18.06.02 21:40 #9gecko Tutorials.de Gastzugang
dann hat php auch keinen zugriff auf die daten im obersten verzeichniss ?
-
19.06.02 10:29 #10
soviel englisch kann ich auch noch....
aber was kann ich dagegen tun ?
tob
-
19.06.02 11:01 #11gecko Tutorials.de Gastzugang
php die entsprechenden rechte geben

aehm, du arbeitest unter windows richtig ? dann wundert mich das gerade ein bisschen, es sei denn du bist unter NT.
-
19.06.02 13:48 #12
zuhause schon, aber der Webserver im Netz läuft auf nem Linuxsystem, und eben dort geht es nicht. Und ich weiss leider werder wo noch was ich einstellen muss damit php die korrekten Rechte bekommt ...
tob
-
19.06.02 15:37 #13gecko Tutorials.de Gastzugang
chmod ******
setz die entsprechenden rechte
chmod 775 verzeichniss per ftp oder system()
-
20.06.02 14:42 #14
mit meinem ftp clienten komme ich ja nicht in ein höheres Verzeichnis als /www/htdocs/pfadfide/ und kann somit auch nicht chmod ändern.
das ganze über php zu lösen kann theoretisch nicht funktionieren da php ja kein zugriff auf das verzeichnis hat(praktisch ****t des auch nicht ich habs ausprobiert...)
sonst noch irgendwelche vorschläge ?
tob
-
20.06.02 16:06 #15gecko Tutorials.de Gastzugang
hmmm... dann sollst du da auch nicht dran...
wenn du von deinem provider aus keinerlei zugriff auf dieses verzeichniss hast, hat das sicherlich seinen sinn
Ähnliche Themen
-
Ebay funktioniert fast nie
Von Frankyboy708 im Forum Internet, DSL & FlatrateAntworten: 31Letzter Beitrag: 07.01.12, 23:33 -
MySQL Abfrage funktioniert nicht, aber in phpMyAdmin schon
Von alex130 im Forum PHPAntworten: 2Letzter Beitrag: 30.12.08, 22:33 -
Script funktioniert nicht im FF im IE & Opera schon
Von MrFreeze im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 31.01.08, 13:32 -
fast schon peinliches thema
Von BOBTHEPAINTER im Forum C/C++Antworten: 2Letzter Beitrag: 21.11.07, 17:02 -
Überprüfung ob Datensatz schon vorhanden funktioniert nicht
Von Gifty43 im Forum PHPAntworten: 4Letzter Beitrag: 28.08.05, 18:41





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren