Ik zou graag als iemand [img] url [/img ] (zonder spatie maar anders zet het dit op dit forum om ;) ) intypt in een textarea en verzend dat de foto in het gastenboek terecht komt. Deze code is simpel en had ik direct gemaakt maar nu zou ik graag hebben dat er een maximum breedte en hoogte is. als de pic groter is word hij automatisch naar de juiste breedte en hoogte gebracht.

Hoe kan ik dit doen?
Eerst moet je bekijken of het plaatje wel bestaat. Zo niet doe dan niets, en als het wel bestaat doe je dit:

<?
$picurl = "http://www.phphulp.nl/mini.jpg";;

$size = getimagesize($picurl);

if ("{$size[0]}" > "{$size[1]}")
{
if ("{$size[0]}" > 125)
$width = "width=\"125\"";
else
$width = "width=\"{$size[0]}\"";

if ("{$size[1]}" > 100)
$height = "height=\"100\"";
else
$height = "width=\"{$size[1]}\"";
}
else
{
if ("{$size[0]}" > 100)
$width = "width=\"100\"";
else
$width = "width=\"{$size[0]}\"";

if ("{$size[1]}" > 125)
$height = "height=\"125\"";
else
$height = "width=\"{$size[1]}\"";
}

echo "<img src=\"" . $picurl . "\" width=\"" . $width . "\" height=\"" . $height . "\" alt=\"user picture\">";
?>
het is zo dat ik niet op voorand weet wat de url van de pic is
het zit in een hele tekstblok, en heb geprobeerd met preg_match maar kon er niet echt aan uit...

Hoe kan ik dit script dan laten werken?
en bestaat er een code om te zien of de pic bestaat?
file_exists() ?
je kan met file_exsists toch enkel in uw eigen mappen zoeken...
toch als ik het met file_exists doe lukt het niet (en anders eigenlijk ook niet :p )


dit is wat ik tot nu toe al heb:
(normaal is het [/img] maar dan zet dit forum het om...)


<?

function picture($picurl){

$size = getimagesize($picurl);

if ($size[0] > $size[1])
{
if ($size[0] > 125)
$width = 125;
else
$width = $size[0];

if ($size[1] > 100)
$height = 100;
else
$height = $size[1];
}
else
{
if ($size[0] > 100)
$width = 100;
else
$width = $size[0];

if ($size[1] > 125)
$height = 125;
else
$height = $size[1];
}

echo "<img style=\"cursor:hand\" src=\"" . $picurl . "\" width=\"" . $width . "\" height=\"" . $height . "\" alt=\"klik om te vergroten\"";



$breed = $size[0] + 40;
$hoog = $size[1] + 40;
echo " onclick=\"popup('".$picurl."', ".$breed.", ".$hoog.")>";

//str_replace("[img]".$picurl."[/img ]", $go, $_POST['Bericht']); $go is wat in deze functie echo inhoud

}


// een test:

$Bericht = "een afbeelding: [img]http://www.altidude.net/mount/stecknadelhorn/North%20Face%20of%20Stecknadelhorn%20(at%20background%20the%20Nadelhorn)%20-%20groot.jpg[/img ]
van sneeuw (en tevens een test)";


preg_match("#\[img\](.*?)\[\/img \]#si",$Bericht,$matches); // normaal $_POST['bericht']
picture($matches[1]);


?>



als ik het uitvoer dan komt er geen afbeelding op omdat de width en de heigt leeg zijn;
weet iemand wat er hier fout aan is?

en hoe kan ik hier best die file_exists op uitvoeren?


dank!
als je dat scriptje van mij gebruikt die hier boven staat, werkt het
Leg dit eens uit Bas:
<?
"{$size[1]}"
?>

Wat doet dat?
dan moet ik u teleurstellen Bas.
ik heb uw code ingegeven in de functie en de width en de height blijven gewoon ""

dit is de code die ik dan krijg in de broncode: (als ik gewoon u code plak)

<img src="http://www.altidude.net/mount/stecknadelhorn/North%20Face%20of%20Stecknadelhorn%20(at%20background%20the%20Nadelhorn)%20-%20groot.jpg"; width="width=""" height="width=""" alt="user picture">



edit:

kan het zijn dat die getimagesize niet geinstaleerd is of bv. een nieuwere versie van php nodig heeft ofzo?
Ik gebruik deze:

functions.php:
<?php
function imageresize($image){
$max = 250; // Dit is dus de max breedte
$img_size = getimagesize($image);
$b = $img_size[0];
$h = $img_size[1];
if($h > $max || $b > $max){
// Begin van $image, met de hyperlink
$show = "<a href=\"#\" onclick=\"javascript:window.open('popup.php?file=".$image."&width=".$b."&height=".$h."&titleImage=".$image."','photopopup','width=".$b.",height=".$h.",directories=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=no,screenx=100,screeny=100')\">";
if($h > $b){
$teveel = $h - $max;
$teveelP = $teveel / $h;
$h = $max;
$b = $b - ($b * $teveelP);
$show .= "<img src=\"".$image."\" height=\"".$h."\" width=\"".$b."\" border=\"0\">";
}
if($b > $h){
$teveel = $b - $max;
$teveelP = $teveel / $b;
$b = $max;
$h = $h - ($h * $teveelP);
$show .= "<img src=\"".$image."\" height=\"".$h."\" width=\"".$b."\" border=\"0\">";
}else{
$h = $max;
$b = $max;
$show .= "<img src=\"".$image."\" height=\"".$h."\" width=\"".$b."\" border=\"0\">";
}

// Einde
$show .= "</a><br><font size=\"1\"><i>Dit plaatje is verkleind vanwege de layout.</i></font>\n";
}else{
$show = '<img src='.$image.' border='.$border.'>';
}
return $show;
}
?>

En dan mijn UBBC-parser:
ubbc.php:
<?php
$bericht = preg_replace("_\[img\](.*?)\[/img\]_ise"," imageresize('\\1') ", $bericht);
?>

En je moet natuurlijk voordat je je ubbc.php aanroept nog functions.php aanroepen.

Zoals je ziet in mijn code wordt mijn foto kleiner gemaakt en kunnen ze de grote versie via een pop-up opvragen. Dit kan je natuurlijk verwijderen. Je kan ook de pop-up gebruiken.

popup.php:
<?php
// Variabelen
$titleImage = $_GET['titleImage'];
$file = $_GET['file'];
if(is_numeric($_GET['width']))$width = $_GET['width'];
if(is_numeric($_GET['height']))$height = $_GET['height'];
?>
<html>
<head>
<title><?php echo $titleImage; ?></title>
<style>
BODY {margin:0px;}
</style>
</head>
<body onBlur="window.close()">
<?php
echo "<a href=\"javascript:window.close()\"><img src=\"".$file."\" width=\"".$width."\" height=\"".$height."\" border=\"0\" alt=\"".$titleImage."\"></a>";
?>
</body>
</html>

Elwin

Reageren