nree Skrevet 30. mars 2008 Del Skrevet 30. mars 2008 (endret) Tittelen sier vell det meste 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 30. mars 2008 av Goggen90 Lenke til kommentar
Jonas Skrevet 30. mars 2008 Del Skrevet 30. mars 2008 (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 30. mars 2008 av Jonas Lenke til kommentar
nree Skrevet 30. mars 2008 Forfatter Del Skrevet 30. mars 2008 (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 ) Men om jeg ser bort fra det har jeg likevell lyst å få dette til Endret 30. mars 2008 av Goggen90 Lenke til kommentar
Gjest Slettet+142 Skrevet 30. mars 2008 Del Skrevet 30. mars 2008 (endret) Jonas; Hva da om klienten har blokket javaskript? Prøv preg_replace_callback() Endret 30. mars 2008 av Slettet+142 Lenke til kommentar
nree Skrevet 30. mars 2008 Forfatter Del Skrevet 30. mars 2008 (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 30. mars 2008 av Goggen90 Lenke til kommentar
Gjest Slettet+142 Skrevet 30. mars 2008 Del Skrevet 30. mars 2008 (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 30. mars 2008 av Slettet+142 Lenke til kommentar
Jonas Skrevet 30. mars 2008 Del Skrevet 30. mars 2008 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
nree Skrevet 30. mars 2008 Forfatter Del Skrevet 30. mars 2008 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 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå