Gå til innhold

[LØST]Bytte ut bbkode [img] til [imgs] hvis bilde er bredere en angitt størrelse


Anbefalte innlegg

Skrevet (endret)

Tittelen sier vell det meste :p

 

Jeg har bbkoden [img*]adresse.jpg[/img*] (stjerne* for at forumet ikke skal erstatte koden min)

Jeg ønsker at den koden blir byttet til [imgs]adresse.jpg[/imgs] hvis bredden på adresse.jpg er over 430px.

 

 

Kan noen bekrefte at det i det hele tatt er mulig og/eller gi meg et eksempel på en slik kode?

 

Redigert kode av bbkode scriptet:

Dette blir kjørt før informasjon blir printet ut fra databasen (altså ikke før informasjon blir satt inn i databasen)

 

function bbkoder ($str) {

	 $bbkoder = array(
					  '/\[img\](.*?)\[\/img\]/is',
					  '/\[imgs\](.*?)\[\/img\]/is'
	 );

	 $erstatt = array(
					 '<img src="$1" alt ="$1" />',
					 '<div class="fbilde"><img src="image.php?img=$1&w=430" alt=\"$1\" />
					 <br />Orginalbilde finner du <a href="$1" target="_blank">her</a> (nytt vindu)</div>'
	 );

	 $str = preg_replace ($bbkoder, $erstatt, $str);

	 return $str;

}

 

Takk for at du tok/tar deg tid :)

Endret av Goggen90
Videoannonse
Annonse
Skrevet (endret)

Det er svært dumt å gjøre dette på serversiden, med tanke på ressurser. Print heller ut alt med vanlig image-tags og kjør gjennom alle bilder i tråden med javascript.

Endret av Jonas
Skrevet (endret)

Det har du forsåvidt rett i, hvis du har et slikt javascript hadde det vært fint om du la det ved innlegget ditt.

Hvem sa at dette ikke var et artikkelsystem med ett bilde, men enn tråd? (det er en tråd da :p )

 

Men om jeg ser bort fra det har jeg likevell lyst å få dette til ;)

Endret av Goggen90
Skrevet (endret)

Takk for svar mariyo, men jeg leter mest etter scriptet for å sjekke om bildet er større enn 430 piksler og deretter erstatte med imgs

 

<?php

$tekst = bbkoder("Her er et bilde: [img=bilde500.jpg] og her er et annet [img=bilde300.jpg]");

// Sjekke om bildene er over 430 piksler og erstatte [img] med [imgs]
// *********************************
// ***** Her trenger jeg hjelp  ****
// *********************************
// Ferdig

echo $tekst;

?>

 

Håper noen kan komme med et enkelt eksempel på hvordan dette kan gjøres :)

Endret av Goggen90
Gjest Slettet+142
Skrevet (endret)

Hvis callbackfunksjonen ser noe lune slik ut burde jo det skje i ett:

 

function bbkoder ($str) {

	$str = preg_replace_callback( '/\[img\](.*?)\[\/img\]/is', "cb", $str );

	$bbkoder = array(
					 '/\[img\](.*?)\[\/img\]/is',
					 '/\[imgs\](.*?)\[\/img\]/is'
	);

	$erstatt = array(
					'<img src="$1" alt ="$1" />',
					'<div class="fbilde"><img src="image.php?img=$1&w=430" alt=\"$1\" />
					<br />Orginalbilde finner du <a href="$1" target="_blank">her</a> (nytt vindu)</div>'
	);

	$str = preg_replace ($bbkoder, $erstatt, $str);

	return $str;

}

function cb( $match ){
 $str = @getimagesize( $match[1] );
 if( !$str || $str[0] > 430 ) return "[imgs]{$match[1]}[/imgs]";
 else return "[img={$match[1]}]";
}

$tekst = bbkoder("Her er et bilde: [img=bilde500.jpg] og her er et annet [img=bilde300.jpg]");

echo $tekst;

 

Burde funke, men utestet :)

 

edit: liten feil. skrev !str istedenfor !$str i if-en i function cb

Endret av Slettet+142
Skrevet
Jonas; Hva da om klienten har blokket javaskript?

Da vil naturligvis bildet vises i normal størrelse. Du trenger vel ikke meg for å resonnere frem til dette? Det er ikke urimelig å kreve javascript for slike fiffige funksjoner, de uten kan bare klare seg med store bilder.

Skrevet

Ut fra erfaring er det å endre størrelsen på bilder via php er ikke noe særlig ressurskrevende, så det blir ikke noe problem å bruke løsningen til mariyo :)

 

Takk igjen mariyo ;)

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...