php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.07.2011, 18:32  
Neuer Benutzer
 
Registriert seit: 08.06.2010
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
terbaik befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] getImageSize() liefert Read Error?!

Hallo Leute,

Ich wollt mich heute mal dranmachen, eine Bildergalerie zu erstellen. Also hatte ich nach einer halben Stunde diesen Code auf die Beine gestellt:

PHP-Code:
<?php
  
//--- Konfigurierung -------
    
    
$confMainDir "./images"// Verzeichnis, aus dem die Bilder gelesen werden sollen



    
function generateThumbnailData($path$maxWidth$maxHeight)
    {
      
$imgSize getImageSize$path );
      
$relation $imgSize[0]/$imgSize[1];

      if( 
$imgSize[0] <= $maxWidth && $imgSize[1] <= $maxHeight ){
        
$newWidth $imgSize[0];
        
$newHeight $imgSize[1];
      }
      else
      {
        if( 
$relation >= )
        {
          
$newWidth $maxWidth;
          
$newHeight $maxWidth*$relation;
        }
        else
        {
          
$newHeight $maxHeight;
          
$newWidth $maxHeight*$relation;
        }
      }

      return Array( 
$newWidth$newHeight );
    }

  
//--------------------------

  
$dir openDir($confMainDir);
  while( 
$file readDir($dir) )
  {
    if( 
$file != "." && $file != ".." )
    {
      
$fileFormat endpreg_split("/[\.]/"$file) );
      
$tnd generateThumbnailData($confMainDir."/".$file2020);

      switch( 
$fileFormat )
      {
        case 
"jpg":
        case 
"png":
        case 
"gif":
        case 
"bmp":
          echo
"<img src=\"$confMainDir/$file\" width=\"$tnd[0]\" height=\"$tnd[1]\"><br>\n";
          break;
      }
    }
  }
?>
Die Funktion generateThumbnailData() soll ein Array zurückliefern, das die Breite und die Höhe des Thumbnails enthält. Doch beim Aufruf dieser Funktion liefert die in ihr aufgerufene getImageSize()-Funktion einen Read Error, und die Höhe des Bildes beträgt dann immer 0, was dazu führt, dass die nächste Zeile auch noch einen Division-by-zero-Fehler ausspuckt.

Ich finde das höchst merkwürdig, denn das Bild ist vorhanden; Die Datei-Struktur:

-ORDNER bildergalerie
--ORDNER images
---DATEI Jellyfish.jpg
---DATEI test.txt (um zu testen, dass nur Bilder behandelt werden)
--DATEI index.php (obiger Code)

Das Bild ist ein Beispielbild von Windows...
Kann es vielleicht an den Zugriffsrechten des Ordners liegen? Wenn ja, wie passe ich sie an?

Danke schonmal für hilfreiche Antworten!

MfG terbaik
terbaik ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 17.07.2011, 18:43  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von terbaik Beitrag anzeigen
Ich finde das höchst merkwürdig, denn das Bild ist vorhanden
Hast du das innerhalb deiner Funktion mit file_exists und is_readable überprüft?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 17.07.2011, 18:50  
Neuer Benutzer
 
Registriert seit: 08.06.2010
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
terbaik befindet sich auf einem aufstrebenden Ast
Standard Das Bild anzuzeigen funktioniert

Wie du bereits aus meinem Code hättest lesen können, versuche ich, das Bild mit einem Echo anzuzeigen, was auch mit genau dem, der Funktion übergebenen, Pfad funktioniert. Die Datei existiert!
terbaik ist offline   Mit Zitat antworten
Alt 17.07.2011, 18:57  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von terbaik Beitrag anzeigen
Wie du bereits aus meinem Code hättest lesen können, versuche ich, das Bild mit einem Echo anzuzeigen, was auch mit genau dem, der Funktion übergebenen, Pfad funktioniert. Die Datei existiert!
PHP sind aber, wenn es aus dem Dateisystem liest, HTTP-Pfade vollkommen egal.

Also, überprüfe jetzt bitte, ob der Pfad an der Stelle auch wirklich korrekt ist.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 17.07.2011, 20:53  
Neuer Benutzer
 
Registriert seit: 08.06.2010
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
terbaik befindet sich auf einem aufstrebenden Ast
Standard Ich werde es morgen checken!

Ok, wusste nicht, dass php das anders betrachten könnte...
Im Moment habe ich leider keine Möglichkeit, es zu prüfen, da ich gerade nur mit meinem Smartphone diesen Beitrag einstellen kann, aber gleich morgen werde ich es ausprobieren. Vielen Dank erstmal für den Tipp!
terbaik ist offline   Mit Zitat antworten
Alt 18.07.2011, 14:22  
Neuer Benutzer
 
Registriert seit: 08.06.2010
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
terbaik befindet sich auf einem aufstrebenden Ast
Standard

Also die Funktion file_exists() findet die Datei und gibt true zurück, was bedeutet, dass getImageSize() kein Problem mit der Datei haben sollte...

Und wenn ich eine andere Bild-Datei verwende -> selbes Problem.
terbaik ist offline   Mit Zitat antworten
Alt 18.07.2011, 14:35  
Neuer Benutzer
 
Registriert seit: 08.06.2010
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
terbaik befindet sich auf einem aufstrebenden Ast
Standard Problem gelöst!

Ich hab nun selbst den Fehler gefunden. generateThumbnailData() wird nicht im Switch ausgeführt, was zur Folge hat, dass es bei jeder Datei, nicht nur bei Bilddateien versucht, die Größe zu ermitteln. Setzt ich die Zeile mit dem Aufruf dieser Funktion in den Switch, funktioniert alles Perfekt! PHP treibt mich echt nochmal in den Wahnsinn , aber nach ner Zeit hat man so ziemlich alle Probleme gelöst

Hier nochmal der funktionierende Code:

PHP-Code:
<?php
  
//--- Konfigurierung -------
    
    
$confMainDir "./images"// Verzeichnis, aus dem die Bilder gelesen werden sollen



    
function generateThumbnailData($path$maxWidth$maxHeight)
    {
      
$imgSize getImageSize$path );
      
$relation $imgSize[0]/$imgSize[1];

      if( 
$imgSize[0] <= $maxWidth && $imgSize[1] <= $maxHeight ){
        
$newWidth $imgSize[0];
        
$newHeight $imgSize[1];
      }
      else
      {
        if( 
$relation >= )
        {
          
$newHeight $maxHeight;
          
$newWidth $maxHeight*$relation;
        }
        else
        {
          
$newWidth $maxWidth;
          
$newHeight $maxWidth*$relation;
        }
      }

      return Array( 
$newWidth$newHeight );
    }

  
//--------------------------

  
$dir openDir($confMainDir);
  while( 
$file readDir($dir) )
  {
    if( 
$file != "." && $file != ".." )
    {
      
$fileFormat endpreg_split("/[\.]/"$file) );

      switch( 
$fileFormat )
      {
        case 
"jpg":
        case 
"png":
        case 
"gif":
        case 
"bmp":
          
$tnd generateThumbnailData($confMainDir."/".$file200010000);
          echo
"<img src=\"$confMainDir/$file\" width=\"$tnd[0]\" height=\"$tnd[1]\"><br>\n";
          break;
      }
    }
  }
?>
terbaik ist offline   Mit Zitat antworten
Alt 18.07.2011, 14:36  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von terbaik Beitrag anzeigen
Doch beim Aufruf dieser Funktion liefert die in ihr aufgerufene getImageSize()-Funktion einen Read Error
Und das heißt konkret ...?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 18.07.2011, 15:58  
Neuer Benutzer
 
Registriert seit: 08.06.2010
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
terbaik befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Und das heißt konkret ...?
Das heißt konkret, dass der Funktion auch die test.txt übergeben wird, welche dann natürlich zu dem Read Error führt.
terbaik ist offline   Mit Zitat antworten
Alt 18.07.2011, 16:27  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

vielleicht aber auch ganz lapidar "." und ".." ^^
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Antwort


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
Parse error: syntax error, unexpected ';' on line 162 Basskill PHP Einsteiger 5 11.06.2011 23:03
Require Once liefert kein Fatal Error bei Fehler in Groß und Kleinschreibung Creator PHP Einsteiger 13 10.06.2011 18:34
Fatal error bei Abfrage ChrisID Datenbanken 1 20.04.2011 21:28
[Erledigt] Alternativer Error Handler mit MySQL Zugriff muncher PHP Einsteiger 1 17.03.2011 11:05
HTML-String auslesen bit4fox PHP Einsteiger 10 08.01.2011 16:33
[Erledigt] Verarbeiten eines Fatal Error starwhooper PHP Tipps 2009 10 12.11.2009 14:54
Spionageversuch? Code-Injection? saibot PHP-Fortgeschrittene 24 06.10.2007 02:07
xmlrpc-epi kompilieren [gelöst] freq.9 Server, Hosting und Workstations 4 24.07.2005 21:45
Parse error: parse error, unexpected $... GrU3nL!nG PHP Tipps 2005-2 4 11.06.2005 18:10
Parse error: parse error, unexpected T_VARIABLE schmiddy PHP Tipps 2005 7 02.06.2005 13:35
getimagesize nodoubt PHP Tipps 2005 5 08.05.2005 23:20
verblüffend: Parse error: parse error, unexpected T_STRING, PHP Tipps 2004 1 07.10.2004 09:05
Internal Server Error Skazi PHP Tipps 2004 2 06.10.2004 22:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php getimagesize abfrage auf true, getimagesize path, getimagesize read file, php getimagesize problem 2011, getimagesize() [function.getimagesize]: read error! url, getimagesize liefert immer einenf ehler, php opendir getimagesize, getimagesize relative path \../\, getimagesize parsed file

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:49 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