php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.12.2004, 22:11  
Gast
 
Beiträge: n/a
Standard Warum findet er Bilder nicht?

PHP-Code:
while ($file readdir ($handle)) { 
                           if (
$file != "." && $file != ".." && substr($file,-4) == '.jpg' && substr($file,-4) == '.JPG' ) { //. & .. & Unterordner ausschliessen
                                 
$cat_id $dir;
                            
$pic_path $cat_name.'/'.$file;
                            
$thumb_dir 'thumbs/t_';
                            
$pic_thumb $cat_name.'/'.$thumb_dir.$file;
                            echo 
"$cat_id - $pic_path - $pic_thumb
"
;
                            
$sql "INSERT INTO ig_pictures (cat_id, pic_path, pic_thumb, pic_viewcount) VALUES ('$cat_id','$pic_path','$pic_thumb','0')"
                            
$res mysql_query($sql) or die(mysql_error());  //Sql query
                           

                    } 
statt && ist natürlich && zu denken!

mit dem Code lese ich Bilder aus einem vordefinierten Ordner aus...
Hab bis jetzt einmal 2 Ordner erstellt mit Bildern darin!
Problem: beim einen geht das auslesen beim anderen nicht....

der einzige Unterschied ist dass bei dem einen Ordner wo es funktioniert die endung .jpg ist und beim anderen .JPG also gross geschrieben, dass ist eigentlich der einzige Unterschied... kann das der Grund sein warum es beim 2ten nicht geht? Allerdings hab ich ja das .JPG mit && substr($file,-4) == '.JPG' ) eingeschlossen....

EDIT: ok hab jetzt getestet es ist das Problem....aber wie kann ich dass umgehen? mit strtolower irgendwie?

Gibt es dazu eine Lösung??

Cheers
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.12.2004, 22:29  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Eigentlich sollte da garkeine Date durch die Abfrage rutschen, da die letzten vier Zeichen ja nicht sowohl .jpg als auch .JPG sein können!

Im Übrigen sollte deine Schleife durch die Verzeichniseinträge derart sein:
PHP-Code:
while (false !== ($file readdir ($handle))) {
   ...

Basti
Basti ist offline  
Alt 30.12.2004, 22:31  
Gast
 
Beiträge: n/a
Standard

rutschen sie aber, denn wenn ich die Endung von .JPG auf .jpg ändere, dann liest er es wieder ein....

und wozu ist das?
PHP-Code:
while (false !== ($file readdir ($handle))) { 
   ... 

danke!
 
Alt 30.12.2004, 23:44  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Code:
while ($file = readdir ($handle)) {

    if ($file != "." && $file != ".." && substr($file,-4) == '.jpg' && substr($file,-4) == '.JPG' ) {

        $cat_id    = $dir;
        $pic_path  = "$cat_name/$file";
        $thumb_dir = 'thumbs/t_';
        $pic_thumb = "$cat_name/$thumb_dir$file";

        echo "$cat_id - $pic_path - $pic_thumb
";

        $sql = "INSERT INTO ig_pictures (cat_id, pic_path, pic_thumb, pic_viewcount) VALUES ('$cat_id', '$pic_path', '$pic_thumb', 0)";
        $res = mysql_query($sql) or die(mysql_error());
    }
}
Wenn der Verzeichniseintrag ungleich '.' und ungleich '..' und die letzen 4 Zeichen gleich '.jpg' UND (logisches und) gleich '.JPG' sind, dann mach dieses und jenes... das wird niemals true!

Übrigends ist es vorteilhaft, wenn du die einzugebenden Daten erst sammelst und dann in eine Query zusammenfasst.

> [strict comparison]
> und wozu ist das?

Hier ist es letztlich unwichtig, weil du ja eh nach Bild-Dateien mit entsprechenden Dateiendungen suchst. Der Punkt ist, dass der Test false gibt, wenn gegen einen Verzeichniseintrag mit dem Namen 0 oder 0.0 oder so getestet wird und das ist ja letztlich nicht das, was du eigentlich vorhast.

Basti
Basti ist offline  
Alt 30.12.2004, 23:55  
Gast
 
Beiträge: n/a
Standard

Zitat:
Wenn der Verzeichniseintrag ungleich '.' und ungleich '..' und die letzen 4 Zeichen gleich '.jpg' UND (logisches und) gleich '.JPG' sind, dann mach dieses und jenes... das wird niemals true!
hmm...wieso?? ich will doch dass er nur die jpg und JPG anzeigt bzw. danach einträgt....
ich könnte die jpg und JPG einschlüsse ja weglassen, aber dann brauch ich eine lösung wie ich einen ordner umgehe...soll heissen ich will den unterordner nicht in der liste sehen...

und true wird es da es ja funktioniert wie es soll, aber nur WENN die endungen klein sind.... und ich will das auf gross geschriebene erweitern....
 
Alt 31.12.2004, 00:07  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Es kann nicht funktionieren! Keine Ahnung, was da sonst noch für Code rumwerkelt. Ein

Code:
if ($foo = '.jpg' && $foo == '.JPG')
wird einfach nicht true, denn es kann ja nur je eine der Möglichkeiten true sein. Die andere ist zwangsweise false. Und (true && false) ergibt false! Die korrekte Verknüpfung ist ein logisches Oder: Wenn die Endung .jpg oder .JPG ist, dann ...

Allerdings würde ich hier einfach mit strtolower() arbeiten...

Basti
Basti ist offline  
Alt 31.12.2004, 00:17  
Gast
 
Beiträge: n/a
Standard

achso meinst du das...mal gucken....
 
Alt 31.12.2004, 00:29  
Gast
 
Beiträge: n/a
Standard

naja so gehts auch nicht...mit dem || .... und mit strtolower krieg ichs auch nicht hin.... weiss nicht wo ich den fehler hab...
 
Alt 31.12.2004, 00:43  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Probier mal das:

PHP-Code:
$Dir dir('.');
while (
false !== ($entry $Dir->read())) {

    if (
'.' == $entry || '..' == $entry) continue;
    
    
$ext strtolower(substr(strrchr($entry'.'), 1));
    if (
'jpg' == $ext || 'jpeg' == $ext) {
    
        echo 
$entry "
\n"
;
    }

Basti
Basti ist offline  
Alt 31.12.2004, 01:25  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von bbastix
Probier mal das:
Oder das:

PHP-Code:
<?php
$p 
'./';
$d dir($p);
while (
false !== ($n $d->read())) 
{
    if (
'.' == $n OR '..' == $n) continue;
    
$n "$p/$n";
    if (! 
is_file($n)) continue; # kein File
    
$type getimagesize($n);
    if (
$type[2] != 2) continue; # Dateityp <> image/jpeg
    
$info pathinfo($n); # pathinfo ist eine feine Funktion

    
if ('jpg' != strtolower($info['extension']) 
        AND 
'jpeg' != strtolower($info['extension'])) 
           continue; 
# falsche Extension
    
# mach was mit $n

        
echo $n "
\n"
;

?>
Hinweis: nicht die Extension bestimmt den Dateityp sondern der Inhalt!
 
 


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
Bilder ohne DB sicher speichern Diet PHP Tipps 2005 6 25.03.2009 00:07
Zip Archiv entpacken und Bilder verkleinern Simon9990 PHP Tipps 2008 5 08.10.2007 00:32
Bilder in HTML-Mails werden willkürlich "verissen" hoffnungsloser PHP-Fortgeschrittene 3 25.04.2007 14:48
bilder zu groß?! lindner PHP Tipps 2006 9 19.10.2006 08:32
Bilder "schützen" PHP Tipps 2006 4 06.03.2006 15:25
Bilder Ordner hochladen? CHRIS PHP Tipps 2005-2 3 30.12.2005 17:20
Bilder löschen PHP Tipps 2005-2 4 24.10.2005 11:37
Bilder aus einem unterverzeichis anzeigen.Hilfe PHP Tipps 2005-2 3 12.09.2005 15:36
Mehrere Bilder Hochladen und bearbeiten PHP Tipps 2005-2 7 23.07.2005 13:48
Bilder in Tabellen nixdorf HTML, Usability und Barrierefreiheit 36 09.05.2005 21:15
Bilder frei positionieren und von Text umfließen lassen. HTML, Usability und Barrierefreiheit 10 24.04.2005 00:05
Bilder aus der Datenbank Skazi Datenbanken 2 09.02.2005 13:42
Bilder upload (Massen) PHP Tipps 2005 11 06.01.2005 14:14
1000de bilder einfügen ab schnell..? :-) PHP Tipps 2004 12 11.08.2004 20:42
Bildübersicht alle Bilder im Ordner... PHP Tipps 2004 46 07.08.2004 20:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
$file substr jpg, finde bilder php nicht, substr .jpg oder jpeg, is_file erkennt keine fotos, php erkennt bilder nicht

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.