Tvinge bildestørrelse vha php

kongen

kongemedlem
Jeg har denne infoen i et db-felt i en database.

HTML:
<img src="http://www.luftslott.no/bilde.jpg" width="2000" height="1400" />

Denne hentes som en variabel med php SELECT.

Hvordan kan jeg forandre størrelse på bilde ved hjelp av php (ikke css) før variablen presenteres på nettsiden?

Hvis bildebredden er større en 1000px så skal bredden settes til 1000px, og proposisjonen skal være lik, slik at variablen blir.

HTML:
<img src="http://www.luftslott.no/bilde.jpg" width="1000" height="700" />

Hvis bildebredden er mindre enn 500px så skal bildestørrelsen settes til 500px.

Variablen kan ha flere "ting" inne i <img>-taggen, slik som title, class, alt osv.

HTML:
<img src="http://www.luftslott.no/bilde.jpg" title="Bilde" class="bilde" alt="Bilde" width="2000" height="1400" />
 

adeneo

Medlem
Her ser det ut som du har gyldig HTML, og da kan vi bruke PHP's innebygde parsere, som er mye bedre enn å rote med regex

PHP:
$img = '<img src="http://www.luftslott.no/bilde.jpg" width="2000" height="1400" />';

$doc = new DOMDocument;
$doc->loadHTML($img);

$node   = $doc->getElementsByTagName("img")->item(0);
$height = intval($node->getAttribute('height'));
$width  = intval($node->getAttribute('width'));

if ($width > 1000) {
    $oldwidth = $width;
    $width    = 1000;
    $ratio    = $width / $oldwidth;
    $height   = $height * $ratio;
} elseif ($width < 500) {
    $oldwidth = $width;
    $width    = 500;
    $ratio    = $width / $oldwidth;
    $height   = $height * $ratio;
}

$node->setAttribute('height', intval($height));
$node->setAttribute('width', intval($width));

$img = $doc->saveHTML($node);
 

kongen

kongemedlem
Jeg prøver å vise bilde med ny bredde ved å legge til dette i bunnen av koden:

PHP:
echo $img;

Men får bare en blank side. Jeg har php5.3 på serveren. Er det noe i koden som krever høyere versjon av php?
 
Topp