myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   [PHP] Jpeg oder PNG in CSS Container einbinden (https://mygully.com/showthread.php?t=1998146)

Awesomo 22.02.10 14:21

[PHP] Jpeg oder PNG in CSS Container einbinden
 
Hallo,

im Rahmen einer Bildergalerie will ich folgende Funktionalität umsetzen:

Beim Klick auf den Thumbnail soll sich das Bild in Groß in einem CSS Container öffnen. Die Dateien sind alle auf dem Server, nur bekomme ich einen Fehler.

Code:

rsort($dateinamen);
while(list($key, $val) = each($dateinamen)) {
    if(substr($val, -4) == ".jpg")
    {
        echo "<A HREF=\"?select=.$val."></A>";
               
                $_GET["select"];
                if(?select=='.$val.')
                {
                include(".$val.");
                }
    }
        if(substr($val, -4) == ".png")
    {
                echo "<a href=\"?select=.$val."></a><tab>";
               
                $_GET["select"];
       
               
                if(?select=='.$val.')
                {
                include(".$val.");
                } 
    }
}

Hierbei bekomme ich immer einen Fehler bei´der if Verzweigung. Ist das ganze überhaupt per include möglich oder wie realisiere ich das?

Vielen Dank im Vorraus,

Awesomo

Irolight 22.02.10 17:41

mal sehen

PHP-Code:

while(list($key$val) = each($dateinamen)) { 

PHP-Code:

foreach($dateinamen as $val) { 

oder wenn du $key braucht
PHP-Code:

foreach($dateinamen as $key => $val) { 

(ist einfach der schöner Weg ;))

PHP-Code:

echo "<A HREF=\"?select=.$val."></A>"; 

hier fängt es schon an. Du brauchst noch ein Anführzeichen vor .$val. und ein Maskiertes Anführzeichen nach dem Anführzeichen hinter .$val.
also
PHP-Code:

echo "<a href=\"?select=" $val "\"></a>"

das selbe weiter unten, und bitte den HTML Teil immer klein schreiben.

Was versuchst du mit folgenden teil?
PHP-Code:

$_GET["select"]; 

Aktuell rufst du nur die Variable auf, die aber nicht benutzt wird.

Genauso

PHP-Code:

if(?select=='.$val.'

ergibt kein Sinn.

wenn muss das ?select in Anführzeichen, Denke aber du meist das $_GET["select"], dann füge das auch ein :)
dann ergibt '.$val.' auch kein sinn. Damit wird geprüft ob der Teil links (was wahrscheinlich das $_GET["select"] ist) .$val. ist. Also Wortwörtlich. Das $val eine Variable ist ist egal, da Variablen in einfachen Anführunszeichen nicht als Variablen verwendet werden.
Ich vermute einfach mal das es so aussehen sollte:
PHP-Code:

if("$_GET["select"]== $val 

Und zu guter letzt
PHP-Code:

include(".$val."); 

Warum Anführungszeichen und Punkte? Wenn du Variablen irgend wo hin übergibst brauchst du das nicht. Dann zu deiner eigentlichen Frage. Nein Bilder kann man nicht Includieren, außer du willst wirklich die Bildinformationen ausgeben (das was raus kommen wenn man ein Bild mit dem Normalen Windows-Notepad öffnen) dann mußs noch der entsprechen Header Gesetz werden. Da du aber vorher den Links zum Bild ausgibst ist es eh hinfällig. Also was genau wolltest du damit erreichen?
Ich rate einfach noch mal ins Blaue. du willst das Bild anzeigen lassen. Dann mach es mit dem HTML-Tag img. Wenn du es in dein Container machen willst, am besten erst in einer Extra Variablen zwischen speichern und an der richtigen stelle ausgeben :)

Awesomo 22.02.10 18:06

Danke erstmal für die detallierte Antwort, hilft mir schon etwas weiter um den Quellcode zu verbessern=)

Mein Problem löst es aber noch nicht ganz.

Ok also über img in den container einbinden und vorher zwischenspeichern? Könntest du mir da noch nen Codeschnipsel geben um das ganze zu veranscdhaulichen?

Sry normalerweise will ich die Arbeit nicht von anderen machen lassen aber ich hab keine lust mich wieder 4 Stunden auf selfhtml oder so durchzuwursteln!

Danke!

Irolight 22.02.10 18:52

PHP-Code:

$containerImage "";
rsort($dateinamen); 
foreach(
$dateinamen as $val) {   
    if(
substr($val, -4) == ".jpg")  { 
        echo 
"<a href=\"?select=" $val "\">Kleine Anmerkung du brauchst noch etwas was hier stehen soll</a>";  
        
        if(
$_GET["select"] == $val)     {
            
$containerImage $val;
        }
    } 
    if(
substr($val, -4) == ".png")   { 
    
Ich lasse den Teil hier mal aus
    
}


etwas Später in deinen Quelltext:

PHP-Code:

<div id="CSSContainer">
<?php if($containerImage != "") { ?>
    <img src="<?php echo $containerImage ?>" />
<?php ?>
</div>

Edit: Weil ich es gerade sehen du kannst das ganze noch etwas vereinfachen in dem du die Prüfung auf die Endung zusammenlegst. D.h. aus
PHP-Code:

 if(substr($val, -4) == ".jpg")  { 

wird
PHP-Code:

 if(substr($val, -4) == ".jpg" || substr($val, -4) == ".png")  { 

Und du hast den ganzen unten Bereich weg

Awesomo 22.02.10 20:22

Erstma danke für den Quellcode, kann das ganze allerdings erst morgen ausprobieren da ich die source dateien nicht hier habe.

Awesomo 23.02.10 09:20

Also das ganze gibt schonmal keinen fehler, jedoch steht dann in der Adresszeile eine zu lange adresse:

http://awesomo.piranho.de/galerie/sc...logogruppe.jpg

sollte aber eigentlich nur:

http://awesomo.piranho.de/galerie/sc...logogruppe.jpg

sein.

Hier nochmal der komplette Code:

PHP-Code:

<?php 

//verzeichnis lesen 
$mydir getcwd()."/img/thumbnail/"
$verz dir($mydir); 
while(
$entry=$verz->read()){ 
        if(
$entry != "." && $entry != ".."){ 
        
$dateinamen[] = $entry
    } 

$verz->close(); 

//Ausgabe 
$containerImage "";
rsort($dateinamen); 
foreach(
$dateinamen as $val) {   
     if(
substr($val, -4) == ".jpg" || substr($val, -4) == ".png") { 
          
        echo 
"<a href=\"" $val "\">$val</a>";
        
        if(
$_GET["select"] == $val)     {
            
$containerImage $val;
        }
    
    } 
    


if(
$containerImage != "") { ?>
    <img src="<?php echo $val ?>" />
<?php 

?>


Hoffe du kannst mir helfen, auch wenn meine Fehler hier einfach nur zu schlecht sind bzw ich zu slchecht bin :D

Irolight 23.02.10 12:49

PHP-Code:

   <?php 

//verzeichnis lesen 
$mydir getcwd() . "/test/img/"
$webdir "/test/img/"// URL-Pfad auf die Bilder evtl noch ein ein weitere Varibale für die TN
$verz dir($mydir); 
while(
$entry=$verz->read()){ 
        if(
$entry != "." && $entry != ".."){ 
        
$dateinamen[] = $entry
    } 

$verz->close(); 

/* //Alternatives Auslesen
$verz = scandir($mydir); 
foreach($verz as $entry){ 
        if($entry != "." && $entry != ".."){ 
        $dateinamen[] = $entry; 
    } 

*/


//Ausgabe 
$containerImage "";
rsort($dateinamen); 
foreach(
$dateinamen as $val) {   
     if(
substr($val, -4) == ".jpg" || substr($val, -4) == ".png") { 
          
        echo 
"<a href=\"?select=" $val "\">$val</a> "// du hast das ?select vergessen
   
        
if($_GET["select"] == $val)     {
            
$containerImage $val;
        }
    
    } 
    


if(
$containerImage != "") { // Ausgabe des Bildes mit richtigem Pfad. $val war hier falsch ?>
    <img src="<?php echo $webdir $containerImage ?>" />
<?php 

?>

du musst oben noch dein Pfad anpassen. in ersten kommen die TNs und im zweiten die richtigen. Alternativ scannst du gleich die richtigen Bilder und lässt nur die TNs bei den Links ausgeben

Awesomo 23.02.10 13:03

Danke für deine tolle Hilfe,

nur öffnet er die bilder nun auch nicht da in der adresszeile erscheint:

http://awesomo.piranho.de/img/thumbnail/cliparthaba.jpg

da fehlt aber noch der s***** ordner in dem alles enthalten ist. Korrekt also:

http://awesomo.piranho.de/galerie/sc...liparthaba.jpg

wenn ich das in den Pfad einfüge bekomme ich diesen Fehler:


Fatal error: Call to a member function read() on a non-object in /var/www/usersites/a/aw/awesomo/htdocs/galerie/s*****/galerie.php on line 62

sry aber ich werd nicht schlau draus.

Eines noch: Statt den Variablennamen als Link zum Klicken hätte ich gern Thumbnails, jedoch komme ich über img source nicht drauf, wie schreibt man das korrekt in die syntax?

Irolight 23.02.10 13:15

PHP-Code:

$mydir getcwd() . "/img/thumbnail/"
$webdir "./img/"
$webdir_thumnail "./img/thumbnail/"

PHP-Code:

 echo "<a href=\"?select=" $val "\"><img src=\"" $webdir_thumnail .  $val "\" alt=\"" $val "\" /></a> "


Awesomo 23.02.10 13:19

du bist ein gott! Wunderbar jetzt geht alles. Hast was gut bei mir=)

Irolight 23.02.10 13:28

noch eine kleine Anmerkung nehme mal bei den Link um den $var ein urlencode auf. also
PHP-Code:

href=\"?select=" urlencode($val) . "\" 

sorgt einfach dafür das es nicht zu Unfällen kommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.