Ergebnis 1 bis 5 von 5

Thema: [PHP]+[JS]: getimagesize und implementierung in JS Befehl

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    [PHP]+[JS]: getimagesize und implementierung in JS Befehl

    Ich hab zurzeit ein etwas umständliches Projekt am laufen. Ich habe auf meinem Webspace einen Ordner randvoll mit Bildern, von denen jedes eine andere Größe hat.
    Jetzt wil ich via PHP-Befehl zuerst den Ordnerinhalt auslesen, die Bildergrößen der einzelnen Dateien auslesen, und diese dann nacheinander in eine JS Befehlszeile einfügen. Das ganze sieht momentan so aus:

    Code:
    <?php
     
    $Pfad = "bilder/";
     
    if($Verzeichniszeiger = opendir($Pfad)) 
    {
        while($Datei = readdir($Verzeichniszeiger))
        {
            if($Datei != "." && $Datei != "..")
            {
                $Bilddaten = getimagesize($Datei);
     
                if($Bilddaten[2] == 1 || $Bilddaten[2] == 2 || $Bilddaten[2] == 3)
                {
    ?>
    
    <html>
    <head>
    
    <script language="javascript" type="text/javascript">
    <!--
    var win=null;
    
    onerror = stopError;
    function stopError(){
    	return true;
    }
    
    
    function picture_01()
    {
    	myleft=20;
    	mytop=20;
    	settings="width=<?php echo$Bilddaten[1]; ?>,height=<?php echo$Bilddaten[0]; ?>,top=" + mytop + ",left=" + myleft + ",scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no,dependent=no";
    	win=window.open("bilder/picture_01.jpg","Gallery",settings);
    	win.focus();
    
    }
    
    function picture_02()
    {
    	myleft=20;
    	mytop=20;
    	settings="width=<?php echo$Bilddaten[1]; ?>,height=<?php echo$Bilddaten[0]; ?>,top=" + mytop + ",left=" + myleft + ",scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no,dependent=no";
    	win=window.open("bilder/picture_02.jpg","Gallery",settings);
    	win.focus();
    
    }
    
    function picture_03()
    {
    	myleft=20;
    	mytop=20;
    	settings="width=<?php echo$Bilddaten[1]; ?>,height=<?php echo$Bilddaten[0]; ?>,top=" + mytop + ",left=" + myleft + ",scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no,dependent=no";
    	win=window.open("bilder/picture_03.jpg","Gallery",settings);
    	win.focus();
    
    }
    
    // -->
    
    <body onBlur="self.close()">
    </script>
    
    <?php
                }
            }
        }
        closedir($Verzeichniszeiger);
    }  
     
    ?>
    
    </head>
    
    <body>
    
    <a href="javascript:picture_01();">Testlink</a><br>
    <a href="javascript:picture_02();">Testlink</a><br>
    <a href="javascript:picture_03();">Testlink</a><br>
    
    </body>
    </html>
    Also: Zuerst wird via PHP "opendir" das Verzeichnis ausgelesen, danach via "getimagesize" die x- und y-Achsen Längen des Bildes.
    Jetzt hab ich also mal die Größenangaben der ersten Bilddatei. Jetzt will ich dass durch einen Klick auf den untenstehenden Links das Bild in einem PopUp angezeigt wird, welches genau die Größe des Bildes hat. Und ja, ich weiss dass das alles mehr als kompliziert gestaltet ist, und dass es möglichkeiten gibt das ganze via PHP viel leichter zu erledigen, aber ich will bzw. brauche diese Variante.

    Durch den echo Befehl werden die Größen jetzt im JavaScript Befehl eingefügt, und sobald man dann auf den Link drückt, wird der JS Befehl mit den Korrekten Größen ausgeführt.

    Problem: Es klappt nicht. Sobald ich die Seite mit den Script aufrufe, bekomme ich die Fehlermeldung:

    Warning: getimagesize() [function.getimagesize.html]: Read error! in /www/usersites/a-f/armitage2k/pub/public/pics/art/js_php_test.php on line 11

    Aber leider finde ich da keinen Fehler... Vielleicht kann mir da jemand weiterhelfen.

    Greets,
    [JLA]

  2. #2
    Öhm, du musst vielleicht den Pfad vor den Dateinamen hängen, wenn du das mit getimagesize bearbeitest.

  3. #3
    ist es eigentlich....

    btw, es ist egal, selbst wenn ich den $Pfad befehl bei getimagesize setze bleibt der fehler der gleiche. ich hab ja nicht zum spaß den Pfad schon mit "." definiert (=momentanes verzeichnis).

    Geändert von Armitage2k (11.07.2006 um 01:40 Uhr)

  4. #4
    Ich glaube er meinte getimagesize($verzeinschnisszeiger . $Datei).

    Alternativ lass bei jedem durchgang $Datei ausgeben um zu sehen ob du mit den richtigen Pfadangaben arbeitest.

  5. #5
    Ohne den Pfad $Pfad vor die Datei zu hängen, versuchst du die Bilder im aktuellen Verzeichnis zu öffnen. Das geht logischerweise nicht, da sie ja im Unterordner bilder liegen. Also musst du bei get_image_size() $Pfad.$Datei reinschreiben satt nur $Datei.
    Noch ein Tipp: Du kannst auch einfach überprüfen, ob get_image_size nicht false zurückgibt, statt jeden einzelnen Bildtypen zu testen.

    Und warum gibst du für jedes Bild einein <html> und <head> Tag aus?
    Warum überhaupt für jedes Bild drei neue Funktionen? Die auch noch alle gleich heissen?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •