[php] read() macht fehler - Fatal error: Call to a member function read() on ...

2TAKTER

Lt. Junior Grade
Registriert
Okt. 2005
Beiträge
399
also wie in dem anderen thema schon gesagt, es funzt nicht... diese funktion, die ich ja an sich nur kopiert habe, will nicht mehr. read() mag nicht :(

Code:
<?php
include "gallery_var.php";

while ($datei = $pdirectory->read())
{
if(eregi(".jpg$", $datei))
{
$thumbnail = $thumbfolder;
$thumbnail .= "/";
$thumbnail .= $thumbprefix;
$thumbnail .= $datei;

$size = getimagesize("$datei");
$width = $wei;
$height = $hei;
$quelle = imagecreatefromjpeg("$datei");
$ziel = imagecreatetruecolor($width,$height);
imagecopyresized($ziel,$quelle,0,0,0,0,$width,$height,$size[0],$size[1]);
$createthumbnail=imagejpeg($ziel,"$thumbnail");
}
}
?>
allerdings will es die read() funktion nicht wirklich

Fatal error: Call to a member function read() on a non-object in K:\Server\xampp\htdocs\GALLERY\th.php on line 5

alle variablen sind aus der gallery_var.php bekannt und der ordner den es lesen soll existiert auch. wird bei is_dir() auch gefunden.
 
ich denke, dass while ($datei = $pdirectory->read()) dafür da ist, dass er alle dateien im verzeichnis durch-looped...
aber irgendwie ergibt das für mich keinen sinn.
wieso weist du da der variable $datei das zu, was du da aus dem verzeichnis auslesen willst...
ganz davon abgesehen, dass dein fehler sagt, dass $pdirectory kein objekt vom typ verzeichnis ist, das eine memberfunktion namens read hat...

hast du das selber geschrieben? wenn nein, woher hast du das?
 
ok es funktioniert. hab diese funktion von einem meber aus dem forum bzw das skript hier. problem ist nur, dass es jetz zwar bilder erstellt, aber diese alle schwarz sind.
also, er geht in den ordner den ich angegeben hab und holt sich die bilder die darin sind.
nun macht er zu jedem ein thumbnail, aber ohne inhalt. wieso?

Code:
<?php
include "gallery_var.php";

$folder = dir($pdirectory);

while ($datei = $folder->read())
{
if(eregi(".jpg$", $datei))
{
$thumbnail = $thumbfolder;
$thumbnail .= "/";
$thumbnail .= $thumbprefix;
$thumbnail .= $datei;

$size = getimagesize("$datei");
$width = $wei;
$height = $hei;
$quelle = imagecreatefromjpeg("$datei");
$ziel = imagecreatetruecolor($width,$height);
imagecopyresized($ziel,$quelle,0,0,0,0,$width,$height,$size[0],$size[1]);
$createthumbnail=imagejpeg($ziel,"$thumbnail");
}
}
?>
 
Hallo,

wo hast du denn das $wei und $hei initialisiert?
Wenn du diese Variablen nich initialisiert hast ist es klar, dass dann auch kein Inhalt im erstellten Bild zu sehen ist. ;)
Daneben solltest du, sofern unterstützt die Funktion imagecopyresampled() statt der Funktion imagecopyresized() verwenden. Diese liefert eine weitaus bessere Bildqualität der erstellten Bilder.
Um den belegten Speicher anschließend wieder frei zu machen solltest du dir dann auch noch die Funktion imagedestroy() anschauen.

MfG mh1001

//Edit: Was ich eben noch sehe: Warum setzt du denn die Variablen teilweise in Anführungszeichen?
 
Zuletzt bearbeitet:
mh1001 schrieb:
Hallo,

wo hast du denn das $wei und $hei initialisiert?
Wenn du diese Variablen nich initialisiert hast ist es klar, dass dann auch kein Inhalt im erstellten Bild zu sehen ist. ;)

Code:
<?php
//pfad zu den bildern
$pdirectory="pics";

//pfad zu den kommentaren für die bilder
//kommentare müssen selben namen haben wie bilder
//z.B. bild.jpg (bild) und bild.txt (kommentar)
$kdirectory="comments";

//pfad zu den thumbs
$thumbfolder="thumbs";
$thumbprefix="th_";

//bilder pro reihe
$picrow=4;

//breite der thumbnails (pixel oder prozent)
$wei=160;

//höhe der thumbnails (pixel oder prozent)
$hei=120;

//überschrift der tabelle in 
//der die bilder gezeigt werden
$headline="Meine Bilder";

//name der css-klasse in der die überschrift stehen soll
//wenn kein css vorhanden ist der wert egal
$csshead="tblhead";

//breite des popups (pixel)
$jWei=800;

//höhe des popups (pixel)
$jHei=600;

//breite des bildes (pixel oder prozent)
//100% = orginalgröße
$pWei="100%";

//höhe des bilder (pixel oder prozent)
//100% = orginalgröße
$pHei="100%";
?>

das ist die includierte php da oben :)
danke ich probiers mal
 
Zurück
Oben