php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.04.2008, 21:16  
Benutzer
 
Benutzerbild von Teela
 
Registriert seit: 23.03.2008
Beiträge: 30
PHP-Kenntnisse:
Anfänger
Teela befindet sich auf einem aufstrebenden Ast
Standard Beim Verzeichnis auslesen Dateinamen unterscheiden

Hallo zusammen!

Ich möchte auf einer Seite meiner Homepage eine Reihe Thumbnails anzeigen lassen,
die dann mit den Bildern in Originalgröße verlinkt werden sollen.

Das jeweilige Verzeichnis wird über die URL übergeben:

PHP-Code:
    $ordner "images/outlines/" $_GET['cat'] . "/";
    
$dir_handle opendir($ordner);

    echo 
"<p>";
    
    while (
$filename readdir($dir_handle))
    {
        if (
$filename != '..' && $filename != '.')
        {
        echo 
'<img src="images/outlines/' $_GET['cat'] . '/' $filename '" alt="' $serie '" />';
        }
    }
        
    echo 
"</p>";
    
closedir($dir_handle); 
Soweit bin ich schonmal ^^"

Dabei werden jetzt noch alle Bilder aus dem entsprechenden Verzeichnis ausgelesen.
Das Problem ist, dass das sowohl Thumbnails, als auch die großen Bilder sind.

Die Grafiken unterscheiden sich folgendermaßen:

Thumbnails: 01_.jpg, 02_.jpg, 03_.jpg, ...
Normalgröße: 01.jpg, 02.jpg, 03.jpg, ...

Bei den Thumbnails ist also immer noch ein "_" mit drin.

Ich habe leider noch überhaupt keine Erfahrung mit dem Zerschnippeln von Dateinamen,
wie bekomme ich es hin, dass die Thumbnails als <img>-Tag und die großen Bilder als Link darum ausgelesen werden?

Sollte dann so aussehen:

<a href="01.jpg"><img src="01_.jpg" /></a>
<a href="02.jpg"><img src="02_.jpg" /></a>
...

Ich hoffe, mir kann da jemand weiterhelfen.
Teela ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.04.2008, 10:08  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Du kannst zum Beispiel pathinfo() verwenden, um den Namen des Thumbnails zu bilden
PHP-Code:
$pi pathinfo($f);
$thumb $pi['filename'] . '_.' $pi['extension']; 
David ist offline  
Alt 27.04.2008, 10:39  
Benutzer
 
Benutzerbild von Teela
 
Registriert seit: 23.03.2008
Beiträge: 30
PHP-Kenntnisse:
Anfänger
Teela befindet sich auf einem aufstrebenden Ast
Standard

Ich hab den Code mal ausprobiert, allerdings scheine ich irgendwas falsch gemacht zu haben:

PHP-Code:
    while ($filename readdir($dir_handle))
    {
        if (
$filename != '..' && $filename != '.')
        {
        
$pi pathinfo($f);
        
$thumb $pi['filename'] . '_.' $pi['extension'];          
        echo 
'<a href="images/outlines/' $_GET['cat'] . '/' $filename '>';
        echo 
'<img src="images/outlines/' $_GET['cat'] . '/' $thumb '" alt="' $serie '" />';
        echo 
'</a>';
        }
    } 
Das Ergebnis sieht nämlich so aus:

Code:
<a href="images/outlines/4/01.jpg"><img src="images/outlines/4/_." alt="Burst Angel"></a>
<a href="images/outlines/4/01_.jpg"><img src="images/outlines/4/_." alt="Burst Angel"></a>
<a href="images/outlines/4/02.jpg"><img src="images/outlines/4/_." alt="Burst Angel"></a>
<a href="images/outlines/4/02_.jpg"><img src="images/outlines/4/_." alt="Burst Angel"></a>
Wie man sieht, wird der Dateiname komplett durch "_." ersetzt,
außerdem wird nicht nur auf die großen Dateien, sondern auch auf die Thumbnails verlinkt...

(Man sollte irgendwie prüfen, ob in der Datei ein "_" vorhanden ist. Wenn nicht, sollte diese Datei in den <a>-Tag,
danach sollte das "_" reingebastelt werden und diese Datei dann in den <img>-Tag).

Wie genau muss ich diesen Code anwenden?
Teela ist offline  
Alt 27.04.2008, 10:45  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Vermutlich hast Du eine veraltete PHP-Version, bei der es das Element filename noch nicht gibt.
PHP-Code:
<?php echo phpversion(); ?>
David ist offline  
Alt 27.04.2008, 10:54  
Benutzer
 
Benutzerbild von Teela
 
Registriert seit: 23.03.2008
Beiträge: 30
PHP-Kenntnisse:
Anfänger
Teela befindet sich auf einem aufstrebenden Ast
Standard

Nein, ich hatte vergessen, das $f in $filename zu ändern ^^"

Naja, jetzt werden zumindest teilweise die Thumbnails richtig verlinkt,
aber leider einmal zuviel, er sollte beim auslesen nur die Dateien ohne "_" nehmen,
sonst passiert folgendes:

Code:
<a href="images/outlines/4/01.jpg"><img src="images/outlines/4/01_.jpg" alt="Burst Angel"></a>
<a href="images/outlines/4/01_.jpg"><img src="images/outlines/4/01__.jpg" alt="Burst Angel"></a>
<a href="images/outlines/4/02.jpg"><img src="images/outlines/4/02_.jpg" alt="Burst Angel"></a>
<a href="images/outlines/4/02_.jpg"><img src="images/outlines/4/02__.jpg" alt="Burst Angel"></a>
Teela ist offline  
Alt 27.04.2008, 11:13  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Du kannst mit glob() alle Dateien mit *_.jpg auslesen und dann mit substr() das letzte Zeichen von filename abschneiden.
David ist offline  
Alt 27.04.2008, 11:53  
Benutzer
 
Benutzerbild von Teela
 
Registriert seit: 23.03.2008
Beiträge: 30
PHP-Kenntnisse:
Anfänger
Teela befindet sich auf einem aufstrebenden Ast
Standard

Entschuldige, wenn ich mich hier gerade ziemlich blöd anstelle,
aber ich weiß leider überhaupt nicht, wo und wie ich diese Funktionen anwenden muss...

Könntest du mir den Code vielleicht komplett aufschreiben? ^^"
Teela ist offline  
Alt 28.04.2008, 12:24  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Teela Beitrag anzeigen
Könntest du mir den Code vielleicht komplett aufschreiben? ^^"
Dann lernst du es halt. Das Forum ist da, um helfen Probleme zu lösen, nicht um dir deinen Code zu schreiben.
Also schau mal glob(), strpos(), str_replace() und substr() an
__________________
Gruss
L
lazydog ist offline  
Alt 28.04.2008, 14:20  
Benutzer
 
Benutzerbild von Teela
 
Registriert seit: 23.03.2008
Beiträge: 30
PHP-Kenntnisse:
Anfänger
Teela befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lazydog Beitrag anzeigen
Dann lernst du es halt. Das Forum ist da, um helfen Probleme zu lösen, nicht um dir deinen Code zu schreiben.
Also schau mal glob(), strpos(), str_replace() und substr() an
Herzlichen Dank. Das Manual kenne ich auch, leider hat es mir nicht besonders weitergeholfen...

Fangen wir doch gleich mal mit glob() an.
Ich hab den Code aus dem Manual genommen und angepasst:

PHP-Code:
    while ($filename readdir($dir_handle))
    {
        foreach (
glob("*_.jpg") as $filename)
        {
            if (
$filename != '..' && $filename != '.')
            {    
            echo 
'<a href="images/outlines/' $_GET['cat'] . '/' $filename '" rel="lightbox[outlines]">';
            echo 
'<img src="images/outlines/' $_GET['cat'] . '/' $filename '" alt="' $serie '" />';
            echo 
'</a>';
            }
        }
    } 
Jetzt müssten (meinem Verständnis nach) alle Dateien mit der Endung "_.jpg" ausgelesen werden.

Passieren tut... gar nichts. Im wahrsten Sinne des Wortes.
Wo vorher noch etwas ausgelesen wurde, wird jetzt gar nichts mehr angezeigt.

Meine Frage war einfach nur, wie schon vorher, wie und wo ich diesen Code benutzen muss.
Eine Hilfe wäre es (meiner Meinung nach), die richtige Verwendungsart des Codes aufzuschreiben.
Wenn das zu viel verlangt ist, dann tut es mit Leid, aber ich komme so nicht weiter...
Teela ist offline  
Alt 28.04.2008, 15:12  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Teela Beitrag anzeigen
Ich hab den Code aus dem Manual genommen und angepasst:
Hast du in diesem Code irgendwo ein opendir() gesehen? Oder ein readdir? Eine While-Schleife um die foreach()-Schleife gibt es auch nicht.
Deine Pattern wären sonst korrekt, so dass auch «..» und «.» nicht mehr ausgelesen werden.
__________________
Gruss
L
lazydog ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Verzeichnis auslesen -> Dateinamen in Array quoba PHP Tipps 2008 11 29.04.2008 16:21
verzeichnis auslesen LP PHP Tipps 2007 11 30.03.2007 13:11
Verzeichnis auslesen und Dateien öffnen jacos PHP Tipps 2006 1 26.06.2006 10:53
Verzeichnis auslesen... madSoul PHP Tipps 2006 9 03.04.2006 16:01
Verzeichnis auslesen saibot PHP Tipps 2005-2 8 09.08.2005 12:22
Dateinamen aus von Ordenrinhalt auslesen und ausgeben PHP Tipps 2005-2 1 12.07.2005 21:23
[Erledigt] Verzeichnis auslesen / redundante Daten PHP Tipps 2005 6 25.05.2005 13:28
verzeichnis auslesen... StartUpBoy PHP Tipps 2005 13 29.03.2005 15:54
Fehlersuche: Ordner aus Verzeichnis auslesen DannyD PHP Tipps 2004-2 6 19.11.2004 20:36
[Erledigt] User Verzeichnis auslesen PHP-Fortgeschrittene 5 29.10.2004 00:48
[Erledigt] Problem mit Verzeichnis auslesen PHP-Fortgeschrittene 7 20.10.2004 21:50
[Erledigt] Verzeichnis andersrum auslesen PHP Tipps 2004 7 02.08.2004 07:39
verzeichnis auslesen Trumpfass PHP Tipps 2004 2 28.07.2004 21:37
Verzeichnis auslesen MK0 PHP Tipps 2004 6 14.07.2004 14:54
Verzeichnis auslesen und in menu einfügen PHP-Fortgeschrittene 1 08.06.2004 00:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
verzeichnis auslesen umlaute, php verzeichnis auslesen umlaute, php img dateiname auslesen, php glob ohne verzeichnis, php dateinamen auslesen umlaute, alle bilder eines verzeichnisses dateiname, php ordner mit thumbnail durchsuchen, php pfad dateiname abschneiden, php src auslesen pattern, glob umlaute php, php nur jpg dateinamen aus einem ordner auslesen, php verzeichnis auslesen und dateiname ersetzen, php ordner lesen $ordner =, pfade mit umlauten mit php ansprechen, php script ordner auslesen für ausgabe lightbox, php dateinamen auslesen wenn dateiname nicht bekannt, php dateien auslesen wenn dateiname nicht bekannt, php verzeichnisse von dateien unterscheiden, verzeichnis name mit sonderzeichen auslesen php, die letzen zeichen php dateiname auslesen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum