myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[PHP] Jpeg oder PNG in CSS Container einbinden

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 22.02.10, 14:21   #1
Awesomo
Anfänger
 
Benutzerbild von Awesomo
 
Registriert seit: Nov 2009
Beiträge: 15
Bedankt: 1
Awesomo ist noch neu hier! | 0 Respekt Punkte
Standard [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
Awesomo ist offline   Mit Zitat antworten
Ungelesen 22.02.10, 17:41   #2
Irolight
Newbie
 
Registriert seit: Feb 2010
Beiträge: 70
Bedankt: 7
Irolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt Punkte
Standard

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
Irolight ist offline   Mit Zitat antworten
Ungelesen 22.02.10, 18:06   #3
Awesomo
Anfänger
 
Benutzerbild von Awesomo
 
Registriert seit: Nov 2009
Beiträge: 15
Bedankt: 1
Awesomo ist noch neu hier! | 0 Respekt Punkte
Standard

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!
Awesomo ist offline   Mit Zitat antworten
Ungelesen 22.02.10, 18:52   #4
Irolight
Newbie
 
Registriert seit: Feb 2010
Beiträge: 70
Bedankt: 7
Irolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt Punkte
Standard

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
Irolight ist offline   Mit Zitat antworten
Ungelesen 22.02.10, 20:22   #5
Awesomo
Anfänger
 
Benutzerbild von Awesomo
 
Registriert seit: Nov 2009
Beiträge: 15
Bedankt: 1
Awesomo ist noch neu hier! | 0 Respekt Punkte
Standard

Erstma danke für den Quellcode, kann das ganze allerdings erst morgen ausprobieren da ich die source dateien nicht hier habe.
Awesomo ist offline   Mit Zitat antworten
Ungelesen 23.02.10, 09:20   #6
Awesomo
Anfänger
 
Benutzerbild von Awesomo
 
Registriert seit: Nov 2009
Beiträge: 15
Bedankt: 1
Awesomo ist noch neu hier! | 0 Respekt Punkte
Standard

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
Awesomo ist offline   Mit Zitat antworten
Ungelesen 23.02.10, 12:49   #7
Irolight
Newbie
 
Registriert seit: Feb 2010
Beiträge: 70
Bedankt: 7
Irolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt Punkte
Standard

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
Irolight ist offline   Mit Zitat antworten
Ungelesen 23.02.10, 13:03   #8
Awesomo
Anfänger
 
Benutzerbild von Awesomo
 
Registriert seit: Nov 2009
Beiträge: 15
Bedankt: 1
Awesomo ist noch neu hier! | 0 Respekt Punkte
Standard

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?
Awesomo ist offline   Mit Zitat antworten
Ungelesen 23.02.10, 13:15   #9
Irolight
Newbie
 
Registriert seit: Feb 2010
Beiträge: 70
Bedankt: 7
Irolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt Punkte
Standard

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> "
Irolight ist offline   Mit Zitat antworten
Ungelesen 23.02.10, 13:19   #10
Awesomo
Anfänger
 
Benutzerbild von Awesomo
 
Registriert seit: Nov 2009
Beiträge: 15
Bedankt: 1
Awesomo ist noch neu hier! | 0 Respekt Punkte
Standard

du bist ein gott! Wunderbar jetzt geht alles. Hast was gut bei mir=)
Awesomo ist offline   Mit Zitat antworten
Ungelesen 23.02.10, 13:28   #11
Irolight
Newbie
 
Registriert seit: Feb 2010
Beiträge: 70
Bedankt: 7
Irolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt Punkte
Standard

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.
Irolight ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 Uhr.


Sitemap

().