php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 10-11-2005, 20:18
Jochen_H
 Newbie
Links : Onlinestatus : Jochen_H ist offline
Registriert seit: Nov 2005
Beiträge: 3
Jochen_H ist zur Zeit noch ein unbeschriebenes Blatt
Standard Verzeichnis wird nicht vollständig ausgelesen

Moin allerseits

Ich arbeite an einem Bildmanager, mit dem man Bilder für bestimmte Artikel/News/etc. auf einer Seite über ein Formular hochladen kann.
Dabei werden die Bilder je nachdem für was man gerade einen Artikel schreibt, oder ob es News sind, die Bilder über den Manager in entsprechende Unterordner auf dem Server hochgeladen (um eine gewisse Ordnung zu haben).
Über den Manager kann man sich Ordnerstruktur, sowie die Dateien im aktuellen Ordner anzeigen lassen. Die Struktur der Ordner geht nach /images/TYPE/ID/
Wird ein neuer Artikel erstellt (läuft über MySQL-Datenbank) und ein Bild für diesen Artikel hochgeladen, wird automatisch im entsprechenden TYPE Ordner ein Unterordner mit der ID des Artikels angelegt. Die Ordner haben alle die selben Zugriffsrechte über CHMOD.


Das Problem ist nun folgendes:
Beim auslesen des aktuellen Ordners werden einige Unterordner sowohl über den Befehl dir() als auch opendir() nicht erkannt/angezeigt.
Das Problem tritt beim auslesen der TYPE-Ordner auf. Mehrere ID-Ordner fehlen. Die ID-Ordner wurden wie gesagt alle über ein Script erstellt, ihre Rechte mit CHMOD auch alle gleich.
Ich bezweifele irgendwie das es sich hierbei um ein Codeproblem handelt.
Auch trat der witzige Effekt auf, das wenn ich mir einmal mit readdir() über Echo den Inhalt ausgeben lasse, und danach noch einmal, das beim ersten Echo nur ein Teil der Unterordner, beim zweiten Echo ein ganz anderer Teil der Unterordner angezeigt wird.


PHP-Code:
# $page_dir enthält den zu öffnenden Ordnernamen (z.B. "guides/clao/" ) 

if(is_dir("../test/website/images/".$page_dir))
{
    
$read_dir opendir("../test/website/images/".$page_dir);
}
else 
$admin_status "Error: Folder does not exist";
# Wenn man an dieser Stelle bereits mit readdir() einsetzt, fehlen die Unterordner, d.h. werden nicht aufgelistet.

// Get Directory-Listing
if(strpos($read_dir_name,"images/..") != FALSE)
{
    
$read_dir opendir("../test/website/images/");
}
// Define File-Filter
$page_filter_false preg_replace("/[0-9A-Za-z_]/i","",$page_filter);
if(
$page_filter_false == '')
{
    
$folder_array = array();
    
$image_array = array();
    
rewinddir($read_dir);
    while(
$file = @readdir($read_dir))
    {
        
// Get File/Directory Names
        
if($file != "." && $file != ".." && is_dir("../test/website/images/".$page_dir.$file))
        {
            
$folder_array[] = $file;
        }
        else
        {
            if(
$page_filter != '' && strstr(strtolower($file),strtolower($page_filter)) == FALSE$page_ok 0;
            elseif(
$page_filter != ''$page_ok 1;
            else 
$page_ok 1;
            
# Für jedes Bild wird beim hochladen ein Thumbnail mit NAME_thumb erstellt 
            
if($file != "." && $file != ".." && $file != "index.htm" && !strpos($file,"_thumb.") && $page_ok == 1)
            {
                
$image_array[] = $file;
            }
        }
    }
    
closedir($read_dir);

# [...] Mehr Code hiernach, aber hierfür wohl nicht relevant. 

Noch als Zusatzinfo:
Die Ordner werden (falls sie nicht schon existieren) mit folgendem Befehl erstellt

PHP-Code:
mkdir("website/images/".$page_dir,0755); 

Schonmal vielen Dank im Vorraus für jegliche produktive Hilfe.

Geändert von Jochen_H (10-11-2005 um 20:58 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 11-11-2005, 00:20
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Versuch mal clearstatcache.
Mit Zitat antworten
  #3 (permalink)  
Alt 12-11-2005, 10:55
Jochen_H
 Newbie
Links : Onlinestatus : Jochen_H ist offline
Registriert seit: Nov 2005
Beiträge: 3
Jochen_H ist zur Zeit noch ein unbeschriebenes Blatt
Standard

clearstatcache bringt leider kein sichtbarer Effekt.
Mit Zitat antworten
  #4 (permalink)  
Alt 12-11-2005, 14:33
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Jochen_H
clearstatcache bringt leider kein sichtbarer Effekt.
Also Clearstatcache() in der ersten Zeile des Skripts? Nicht hintendran.
Was für eine Plattform ist das? Windows oder Linux?
Wenn Linux, kommst Du an die Kommandozeile? Gib mal ein konkretes Beispiel mit Ordnern, die nicht angezeigt werden, und den Output eines "ls -lisa" im Verzeichnis, das die Ordner enthält.
Mit Zitat antworten
  #5 (permalink)  
Alt 16-11-2005, 22:51
Jochen_H
 Newbie
Links : Onlinestatus : Jochen_H ist offline
Registriert seit: Nov 2005
Beiträge: 3
Jochen_H ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Auf dem Server läuft Linux, ja. Ich hab den Provider kontaktiert um den Ordner mal zu überprüfen, jedoch kann der keine Probleme feststellen.
Das einzige was er mir sagen konnte, war das sie vor kurzem "einige Dinge geändert haben" - was genau, konnte er mir aber nicht verraten.

Ein konkretes Beispiel mit den Ordnern sieht wie folgt aus:
Als Beispiel der Unterordner guides/clao
Er beinhaltet 6 weitere Unterordner, mit den Namen 0,1,2,3,5,6 (von IDs der Artikel).

Anzeigen tut das Script nur die Ordner 2,5.
Kurios ist, wenn ich den readdir Befehl zweimal über den selben Ordner jage und mir das Ergebnis ausgeben lasse, so steht beim ersten Durchlauf Ordner 2,5 dort, beim zweiten Durchlauf (kein Refresh, im Script zweimal aufrufen) wird Ordner 1 angegeben.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:33 Uhr.