php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
bbcode für Grafik


 
CodeBlue
07-12-2005, 13:53 
 
Ich bin auf der Suche nach einem Lösungsansatz für einen bbcode für Grafiken.
Den bbcode umzuwandeln ist kein Problem, allerdings muss ich die Größe des Bildes beschränken können. Ich könnte da einfach einen Wert eintragen, allerdings werden dann Grafiken die nicht so breit sind gestreckt, was nicht so toll ist.
Die Funktion imagesx() um die Breite der Grafik zu ermitteln ist mir auch bekannt. Nur wie baue ich jetzt die Funktion in die Stringfunction ein?


function resize_img($url)
{
$width = imagesx($url);

if($width >= "270")
{
return "270";
}


}

preg_replace( "/\[IMG\](.*?)\[\/IMG\]/is",
"<a href=\"http://$1\" target=\"_blank\"><img src=\"$1\" border=\"0\" width=\"260\"></a>",
$eintrag);

 
hhcm
07-12-2005, 14:21 
 
Nimm das preg_replace mit in die Funktion rein..


if($width >= "270")
{
preg_replace( // mit width 270 );
}
else
{
preg_replace( // ohne width );
}

 
CodeBlue
07-12-2005, 14:37 
 
Hmm gute Idee, aber da hab ich das Problem, das ich erst die URL der Grafik auslesen muss, um festzustellen wie breit die Grafik ist. An dem Punkt steh ich irgendwie aufm Schlauch (also die Kombination von URL auslesen und Breite festsetzen).

 
hhcm
07-12-2005, 14:47 
 
Du stehst wirklich auf dem Schlauch. Du sollst das preg_replace mit in die funktion reinnehmen.. Muss ich dir das jetz wirklich vorkauen?
:rolleyes:


function sinniger_funktionsname($url)
{
$width = imagesx($url);

if($width >= "270")
{
preg_replace( // mit width 270 );
}
else
{
preg_replace( // ohne width );
}
}


Oder einfach Ohne eine Funktion...


if (imagesx($url) >= "270")
{
preg_replace( // mit width 270 );
}
else
{
preg_replace( // ohne width );
}

 
thommyk
07-12-2005, 14:48 
 
lass die function resize_img() so, wie sie am Anfang war und
mach aus dem preg_replace
preg_replace( "/(.*?)/is",
"<a href=\"http://$1\" target=\"_blank\"><img src=\"$1\"
border=\"0\" width=\"".resize_img("http://$1")."\"></a>",
$eintrag);

 
thommyk
07-12-2005, 14:53 
 
@hhcm

$url extrahiert er doch erst im preg_replace, wie soll er da vorher
imagesx($url) aufrufen können :confused:
oder er macht vorher noch ein preg_match, wäre aber überflüssig, s.o.

 
hhcm
07-12-2005, 16:23 
 
Ja das hab ich wohl auch gerade bemerkt :{

 
mrhappiness
07-12-2005, 16:29 
 
Wie wär's mit dem Modifer e bei preg_replace oder einem preg_replace_callback?

 
CodeBlue
07-12-2005, 18:12 
 
@thommyk ich glaub das bringts! Hab die ganze Zeit die Funktion flasch in der preg_replace Funktion eingebaut.

@hhcm manchmal redet man halt einfach an einander vorbei :D

 
CodeBlue
07-12-2005, 19:22 
 
Mist! Funzt nicht! Der schickt den Wert der Varaible net mit!
Es wird immer http://$1 an die Funktion übergeben!


preg_replace( "/(.*?)/is",
"<a href=\"http://$1\" target=\"_blank\"><img src=\"$1\"
border=\"0\" width=\"".resize_img("http://$1")."\"></a>",
$eintrag);

 
mrhappiness
08-12-2005, 09:48 
 
Original geschrieben von mrhappiness
Wie wär's mit dem Modifer e bei preg_replace oder einem preg_replace_callback?

 
CodeBlue
08-12-2005, 17:34 
 
Danke für den Tip! Es funzt jetzt!

function bb_img($img)
{
$width = getimagesize($img[1]);

if($width[0] >= "260")
{
return "<a href=\"http://$img[1]\" target=\"_blank\"><img src=\"$img[1]\" border=\"0\" width=\"260\"></a>";
}
else
{
return "<a href=\"http://$img[1]\" target=\"_blank\"><img src=\"$img[1]\" border=\"0\"></a>";
}
}



echo preg_replace_callback("/\[IMG\](.*?)\[\/IMG\]/is", "bb_img", $eintrag);


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:40 Uhr.