Gå til innhold

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


Anbefalte innlegg

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
Lenke til kommentar
Videoannonse
Annonse

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
Lenke til kommentar

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
Lenke til kommentar
Gjest Slettet+142

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
Lenke til kommentar
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.

Lenke til kommentar

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...