BB Code - Der IMG Tag
Autor
Flitze
Klicks 174791
Keywords:
BB-Code, [php]-Tags, [img]-Tags, [url]-Tags, HTML ersetzen, HTML ausschalten, Text formatieren, Wörter kürzen, www direkt umwandeln, img tag, image tag, bb code, bilder einfügen
Klicks 174791
Rating für BB Code
8.6 von 10
Bewertungen187
Stand
11.06.2013
8.6 von 10
Bewertungen187
Keywords:
BB-Code, [php]-Tags, [img]-Tags, [url]-Tags, HTML ersetzen, HTML ausschalten, Text formatieren, Wörter kürzen, www direkt umwandeln, img tag, image tag, bb code, bilder einfügen
Breadcrumb:
Tutorials » BB Code » BB Code - Der IMG Tag
4. [IMG ] Tag
[ADSENSE_LINE]Beispiel (das Leerzeichen muss natürlich entfernt werden):
[ img]http://www.mywebsolution.de/pics/banner.gif[ /img] =>
Code:
PHP:
<?php
$text = preg_replace_callback("/\[img\](.*)\[\/img\]/Usi", 'picSize', $text);
?>
Die Verwendung von IMG-Tags sollte gut überlegt sein. Damit erlaubt man den Usern, den Inhalt der Seite zu beeinflussen. Gefahren, die dabei entstehen können sind u.a.
Es wird ein Bild mit großen Ausmaßen eingefügt, was wiederum das Seitenlayout zerstören kann (siehe überlange Wörter...)
Es wird ein sehr großes Bild (also große Datei) gespeichert, wodurch sich die Ladezeit stark erhöht
Es wird rechtlich Verbotener Inhalt eingefügt (Pornografie, Gewalt, ..)
...
Den ersten Punkt kann man mit preg_replace_callback wieder entschärfen, für die anderen beiden habe ich jedoch noch keine Lösung gefunden.
Um Bildern eine maximale Breite und Höhe zuzuweisen, muss man das Bild, welcher der User darstellt überprüfen und gegebenenfalls durch das Hinzufügen von height- und width-Attributen anpassen. Dazu habe ich die Funktion picSize geschrieben.
PHP:
<?php
// Prüft die Bildausmaße und passt sie gegebenenfalls an
// wird für preg_replace_callback definiert
function picSize($treffer)
{
// falls keine gültige Adresse angegeben wurde, wird die Fehlermeldung unterdrückt
$size = @getimagesize($treffer[1]);
if ($size[0] > 400) {
$width = 400;
// Höhe berechnen
$height = ($size[1]/$size[0])*$width;
return " <img src=\"".$treffer[1]."\" width=\"".$width."\" height=\"".$height."\" border=\"0\"> ";
}
else
return " <img src=\"".$treffer[1]."\" border=\"0\"> ";
}
?>
Die Funktion getimagesize liefert mir u.a. Informationen über die Ausmaße des Bildes.
$size[0] ist die Bildbreite , die Höhe des Bildes interessiert mich erstmal nicht so sehr, da vertikales Scrollen bei weitem nicht so schrecklich ist wie horizontales
Ist die Breite größer als 400 Pixel, wird sie auf 400 gesetzt und die Höhe wird angepasst, damit das Bild nicht verzerrt wirkt.
Ist die Bildbreite ohnehin kleiner als 400 Pixel, so wird keine height bzw. width Angabe gemacht.
Zurück zur vorigen Seite:
BB Code - Wörter kürzen Weiter zur nächsten Seite:
BB Code - Der QUOTE Tag