Avatar billede fiskemanden Nybegynder
16. august 2003 - 17:32 Der er 10 kommentarer

Maximal bredde på billede

Jeg har dette regulære udtryk:

$tekst = preg_replace("/\[img\](\S+)\[\/img\]/i", '<img src="\\1">', $tekst);

Som du kan se skal den erstatte en url mellem og med et billede...

Mit spørgsmål lyder på hvordan man kan gøre så billedet max er 600 px bredt!
Avatar billede nidyahou Praktikant
16. august 2003 - 17:34 #1
i img tag sætter du width=600 ind ??
eller 100%
Avatar billede fiskemanden Nybegynder
16. august 2003 - 17:35 #2
Nej.... For så strækker den billedet!
Avatar billede detox Nybegynder
16. august 2003 - 17:51 #3
fx:

<?
$pic = 'sti/til/billede.gif';
$size = getimagesize($pic);
if ($size[0] > 600) {
    $width = 600;
}else{
    $width = $size[0];
}
echo "<img src=\"$pic\" width=\"$width\">";
?>
Avatar billede fiskemanden Nybegynder
16. august 2003 - 17:51 #4
hvordan sætter jeg det ind i min regular expression?
Avatar billede detox Nybegynder
16. august 2003 - 17:55 #5
Sådan her vil jeg tro:

$tekst = preg_replace("/\[img\](\S+)\[\/img\]/i", '<img width=\"$width\" src="\\1">', $tekst);
Avatar billede detox Nybegynder
16. august 2003 - 18:04 #6
Sådan samlet eks.:

<?
$tekst = "img/first.jpg";
preg_match("/\[img\](\S+)\[\/img\]/i", $tekst, $match);
$pic = $match[1];
$size = getimagesize($pic);
if ($size[0] > 600) {
    $width = 600;
}else{
    $width = $size[0];
}
echo "<img width=\"$width\" src=\"$pic\">";
?>
Avatar billede detox Nybegynder
16. august 2003 - 18:20 #7
Derudover vil jeg anbefale dig, at bruge en alt attribut i din <img> og afslutte med />
Eks: echo "<img src=\"$pic\" width=\"$width\" alt=\"en alternativ tekst\"/>";
Avatar billede detox Nybegynder
16. august 2003 - 18:49 #8
Måske nærmere sådan her, da du jo nok har mere tekst du vil ha' med:

preg_match("/\[img\](\S+)\[\/img\]/i", $tekst, $match);
$pic = $match[1];
$size = getimagesize($pic);
if ($size[0] > 600) {
    $width = 600;
}else{
    $width = $size[0];
}
$pattern = "/\[img\](\S+)\[\/img\]/i";
$rep = "<img src='\\1' width='$width'/>";
$tekst = preg_replace($pattern, $rep, $tekst);
Avatar billede fiskemanden Nybegynder
16. august 2003 - 20:35 #9
Hmm... Nogengange returnerer den bare Width=''
Avatar billede detox Nybegynder
16. august 2003 - 20:39 #10
Ja, det er jo ikke meningen. Sådan her er du i hvert fald sikker på den bruger det samme pattern:

$pattern = "/\[img\](\S+)\[\/img\]/i";
preg_match($pattern, $tekst, $match);
$pic = $match[1];
$size = getimagesize($pic);
if ($size[0] > 600) $width = 600;
else $width = $size[0];
$rep = "<img src='\\1' width='$width'/>";
$tekst = preg_replace($pattern, $rep, $tekst);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester