ik gebruik bij m'n forum de volgende code om mensen een afbeelding te laten plaatsen:

<?php

$tekst = eregi_replace("\\[img]([^\\[]*)\\[/img\\]","<img src=\"\\1\">",$tekst);

?>

is het bij deze code ook mogelijk om te controleren wat de afmetingen van de afbeelding zijn?

en als het niet mogelijk is, is er een andere manier om dat te doen?
niemand? :(
Neej op die manier kun je het natuurlijk niet zien.
Zie je aan een <img> hoe groot de afbeelding is?
Kijk eens naar getimagesize() :)
ja ik weet wel hoe je kunt kijken hoe groot een afbeelding is maar dan moet je dus wel weten om welke afbeelding het gaat. ik wil dus als iemand met [ img]http://blabla[/ img] een afbeelding plaatst voordat ie met ergei_replace een <img> van gemaakt wordt controleren hoe groot ie is.

is dat mogelijk?

(beetje vaag uitgelegd hoop dat iemand me begrijpt :S)
Je kan met bijvoorbeeld preg_match() een match opzoeken en die gebruiken ...
ja thnx die had ik nodig!! :)

ik heb allen nu weer een probleempje met de volgende code

<?php

$tekst = "hallo [b ]dit[/b ] is [b ]een[/b ] test."; //in het echt zonder spaties

if(preg_match("/\[b\](.+?)\[\/b]/is",$tekst,$matches))
{
//hier wil ik wat controles uitvoeren enzo
}

echo($tekst);

?>

hij pakt nu alleen de eerste

hoe zorg je ervoor dat ie alle [b ] [/b ] eruit haalt en niet alleen de eerste?
Kijk eens op php.net :)
Mss kun je daar wat vinden, die offset bijvoorbeeld :P
<?php

$tekst = eregi_replace("\\[img]([^\\[]*)\\[/img\\]","<img src=\"\\1\">",$tekst);

?>


Ff een kleinigheid, maar ik dacht dat je bij een img tag altijd een alt moest meegeven... Sorry als ik me vergis, anders is het een leuke tip ;)
Dat is wel zo, maar moeten is alleen het geval als je het HTML valid wilt hebben :)
Mitch schreef op 12.10.2004 19:45
Dat is wel zo, maar moeten is alleen het geval als je het HTML valid wilt hebben :)


Een HTML valid website hebben is altijd leuk meegenomen... Het werkt ook zonder, maar het aanpassen is maar een kleinigheid ;)
Het is gelukt met de functie preg_match_all :)

bedankt voor jullie hulp!! ik zocht al heel lang een manier om dit te doen.

zo is m'n script geworden met een voorbeeld tekst. ik ga het gebruiken voor de berichten op een forum.

<?php

$tekst = "Tekst met plaatjes erin [ img]http://www.phphulp.nl/imgs/header/logo.gif[/ img] a test [ img]http://www.phphulp.nl/imgs/header/logo.jpg[/ img] [ img]http://www.pha.jhu.edu/~bingz/background.gif[/ img].";

preg_match_all("|\[img\](.*)\[/img\]|U",$tekst,$out, PREG_PATTERN_ORDER);

foreach($out[1] AS $image)
{
if(!@file($image))
{
$tekst = eregi_replace("\\[img]".$image."\\[/img\\]","<a href=\"".$image."\" target=\"_blank\"><b>Afbeelding niet gevonden</b></a>",$tekst);
}
else
{
$size = getimagesize($image);

if($size[0]<=500)
{
$tekst = eregi_replace("\\[img]".$image."\\[/img\\]","<img src=\"".$image."\" alt=\"".$image."\" />",$tekst);
}
else
{
$tekst = eregi_replace("\\[img]".$image."\\[/img\\]","<a href=\"".$image."\" target=\"_blank\">Grote afbeelding</a>",$tekst);
}
}
}

echo($tekst);

?>

hebben jullie misschien nog tips hoe ik het script kan verbeteren?

allemaal heel erg bedankt!!

edit: in de voorbeeld tekst even spaties in de [ img] gezet.. anders ging ie de plaatjes laten zien :P
edit2: hoe zorg je ervoor dat ie in het bericht je code niet afbreekt??

Reageren