[Gelöst] Bildlink erkennen und direkt anzeigen

Hallo zusammen,

bin mal wieder ein klein wenig am basteln. Ich habe ein PHP-Script welches als Adressverwaltung arbeitet. Das einzigste was fehlt ist die Anzeige eines Bildes. Nun ist es so, das ich es momentan so gelöst habe, daß ich einen Link zum Bild eingegeben habe und wenn ich da rauf klicke, dann wird mir das entsprechende Bild auch angezeigt. Gibt es eine Möglichkeit, das man irgendwie noch eine if bzw. echo Abfrage einbaut, welche diesen Link erkennt und automatisch als Bild anzeigt z.B. anhand der Dateiendung?

Ich hoffe das ist einigermaßen verständlich ausgedrückt. Kann mir da jemand weiterhelfen?

Arbeitest du mit einer Datenbank?
Leg einfach die Bildpfade in der Tabelle ab und les sie dann mittels mysql aus.
dann bauste dir sowas

Hallo,

ja arbeite mit einer Datenbank. Problem ist allerdings, das ich absolut keinerlei Datenbank-Kenntnisse besitze. Habe ein schon fertiges Script, welches ich selbst nicht gebastelt habe. Habe dort die Anzeige-Maske auf meine Bedürfnisse umgebaut ansonsten bin ich leider nach wie vor Anfänger auf diesem Gebiet und ohne Anleitungen bin ich momentan noch aufgeschmissen. Den Link kann ich nicht fest einbauen, da dieser bei jeder Adresse ein anderer ist, deswegen soll ja einfach die Anzeige-Maske das erkennen, daß das ein Bild-Link ist und entsprechend umwandeln und direkt anzeigen.

In diese vorhandene Datenbank was reinschreiben und anschliessend noch irgendwie die Maske zu ändern da bin ich leider noch etwas überfordert. Gibt es da auch eine andere Lösung?

Die Dateiendung eines Pfads bekommst du mit

$path_parts = pathinfo("pfad/index.html");

$path_parts['extension']; 

heraus. Dann musst du nur noch mit einem Array vergleichen, welches Bildendungen enthält, und dann entscheiden, ob a oder img.

$path_parts = pathinfo("pfad/bild.gif");

$gfx_extensions = array('gif','png','svg','jpg','jpeg','bmp','ico');

if(in_array($path_parts['extension'],$gfx_extensions,false)
echo "<img src=\"" . $linkpfad . "\" alt=\"Grafik defekt\" />";
else
echo "<a href=\"" . $linkpfad . "\">Linktext</a>";

Hallo zusammen,

@jw-lighting: Ich verstehe nicht ganz wie ich den Code einbinden muß. Muß ich dort noch eine feste Pfadangabe einbringen? Wenn ja dann wäre das nicht das was ich suche. Der Pfad der Datei ist variabel und dieser Pfad inklusive Bild soll automatisch erkannt werden und dann mit einem entsprechenden Befehl das Bild direkt anzeigen. Wobei ich gerade überlege ob dieser überhaupt variabel sein muß?!? :whata:

Ein fester Pfad wäre auch sinnvoll, da ich ja die Bilder sowieso benennen muß, dann bräuchte ich auch nur ein Verzeichnis angeben.

Kann man den Code so übernehmen oder was müßte da noch angepasst werden? Wo muß ich was eintragen? Blicke da momentan noch nicht ganz durch. Bin noch nicht richtig fit in PHP und habe deswegen noch ein paar kleiner Verständnisprobleme.

Bitte um eine kurze Erläuterung mit vieleicht einem Beispiel wäre schön. Danke im voraus.

Hier noch mal kommentiert… :wink:

// -> kann ein beliebiger pfad sein, bei dem zwischen bild und link entschieden werden soll
$pfad = ""; // <- bitte definieren

// holt bestandteile aus diesem pfad
$path_parts = pathinfo($anfangspfad);

// array mit allen grafik endungen
$gfx_extensions = array('gif','png','svg','jpg','jpeg','bmp','ico');

//prüft, ob die in $pfad angegebene datei eine in $gfx_extensions angegebene endung hat,
//wenn ja, binde sie als bild ein, sonst als link
if(in_array($path_parts['extension'],$gfx_extensions,false)
echo "<img src=\"" . $pfad . "\" alt=\"Grafik defekt\" />"; // als bild
else
echo "<a href=\"" . $pfad . "\">Linktext</a>"; // als link

Du musst nur noch jeweils den pfad nach $pfad zuweisen.
an sonsten ist der code ready :wink:

Hallo jw-lighting,

nur nochmal zu meinem Verständnis, ist das so richtig? Das setze ich jetzt einfach so wie ich es hier aufgeführt habe in die entsprechende php-Datei ein?

[code]<?php

$pfad = “http://www.test.de/test”;

$path_parts = pathinfo($anfangspfad);

$gfx_extensions = array(‘gif’,‘png’,‘svg’,‘jpg’,‘jpeg’,‘bmp’,‘ico’);

if(in_array($path_parts[‘extension’],$gfx_extensions,false)
echo “<img src=”" . $pfad . “” alt=“Grafik defekt” />";
else
echo “<a href=”" . $pfad . “”>Linktext";

?>[/code]

Mmmmh… ich probiere es einfach mal. Schauen wir mal ob es klappt. :wink:

Ich glaube du musst den Pfad direkt auf eine Datei nehmen und nicht von einem Verzeichnis.

Hallo,

habe gerade festgestellt daß es wohl nicht ganz so einfach klappt. Wenn ich den Code in der Ausgabe Datei so reinschreibe, dann bekomme ich einen T_ECHO-Fehler. Ich vermute mal das es damit zusammenhängt, daß der Link in eine Datenbank geschrieben wird. Geht es trotzdem irgendwie?

Wäre dankbar für weitere Tips.

Nein, das haengt damit zusammen, dass hinter der IF-Bedingung eine Klammer fehlt - und deshalb das echo natuerlich “unexpected”, unerwartet, fuer den Parser kommt.

Auf sowas koennte man natuerlich auch selber kommen, wenn man sich wenigstens mal ein bisschen Ahnung von der PHP-Syntax aneignet.

Jetzt hör aber mal auf hier rum zu ätzen… Recht hast du ja, baer das geht auch freundlicher…! Zudem ist das ein einfacher Tippfehler, das hat nichts mit Wissen über PHP Synatx zu tun. Ausserdem: Es gibt Leute, die PHP nutzen möchten, in wenigen Fällen, und die sich deshalb nicht gleich ein ganzes Buch reinziehen wollen. Und das ist auch ihr Recht!
Du hast schliesslich auch mal klein Angefangen.
Ich möchte jetzt keine Rechtfertigungen, oder Kommentare dazu hier im Board, das gehört hier nicht hin. Wenn du meckern willst, schick mir ne PN!

So, Sorry, aber das musste mal raus! :stress: :motz: :unamused:

Ich habe grade noch einen Fehler entdecket, hier nochmal der code:

<?php

$pfad = "http://www.test.de/test";

$path_parts = pathinfo($pfad);

$gfx_extensions = array('gif','png','svg','jpg','jpeg','bmp','ico');

if(in_array($path_parts['extension'],$gfx_extensions,false))
echo "<img src=\"" . $pfad . "\" alt=\"Grafik defekt\" />";
else
echo "<a href=\"" . $pfad . "\">Linktext</a>";

?>

pathinfo() unterstützt sowohl relative, als auch absolute Pfade, wenn ich das dem Manual richtig entnommen habe :wink:

Die Ursache so eines - simplen - Fehlers selber finden zu koennen - natuerlich hat das was mit Grundkenntnis der Syntax zu tun.

Alles Leute hier, die keine Ahnung haben…nja, was solls :ps:

@jw-lightning: Dein Code funktioniert, aber ich würde es eher so lösen (und die IFs einrücken):

<?php

$pfad = "http://www.test.de/test";

$path_parts = pathinfo($pfad);

$gfx_extensions = array('gif','png','svg','jpg','jpeg','bmp','ico');

if(in_array($path_parts['extension'],$gfx_extensions,false))
  echo "<a href='$pfad'><img src='$pfad' alt='Grafik defekt' style='width: 300px' /></a>";
else
  echo "<a href=' $pfad'>$pfad</a>";

so wird das Bild als Thumbnail angezeigt und auf das normale Bild verlinkt. Außerdem verwendet PHP und HTML ’ ’ UND " "…das macht es gleich übersichtlicher :wink:

Hallo,

erst einmal vielen Dank für eure Hilfestellungen. Das bringt mich schon echt weiter und als Stand-Alone funktioniert das auch. Allerdings nur wenn ich bei pfad den kompletten Pfad zur Bilddatei angebe.

Da ich nach wie vor noch nicht so richtig zurecht komme hier mal der Code, wo das mit dem Bild integriert werden soll: [code]


<?php if ($fi_tm01f080 == 1) { ?>

<?php echo $text['ntm01f080']?>



 <?php if ($zsfeld01_typ == "http") { echo(""); }?> <?php if ($zsfeld01_typ == "mailto") { echo(""); }?> <?php echo $vtm01f080?> <?php if (($zsfeld01_typ == "http") || ($zsfeld01_typ == "mailto")) { echo(""); }?>

<?php } ?>
      </tr>[/code]

das ist das Feld, welches den Link darstellt. Dieses Feld möchte ich jetzt so umbauen das nicht der Link sondern das Bild welches sich dahinter versteckt direkt anzeigt. Bin mir jetzt aber nicht sicher wie genau der Code dort eingebunden werden muß??? Bitte entschuldigt meine Unwissenheit stehe halt noch so ziemlich am anfang was PHP angeht. o.0

@michi7x7: das mit der Thumbnail-Ansicht finde ich auch ganz gut :p

@michi7x7: Nebenbei gefragt, wo bekommt man die super Avatare her, welcher unter dem Namen angezeigt wird? Gibt es da mehrere von? Finde diese Bale-Kaida Avatare einfach nur klasse :smiley:

Nochmal ich,

Oh super ich glaube ich habe es schon fast selbst hinbekommen. :smiley:
werde das jetzt nochmal testen und mich nochmals melden.

sonst poste doch mal deinen code, und sag uns was noch fehlt :wink:

Hallo zusammen,

vielen Dank für eure Hilfe. Das Script funktioniert jetzt so wie ich es mir vorgestellt habe. Bilder werden angezeigt. Das Thema kann also erledigt werden. Vielen Dank nochmals. :wink2: