Dunestar Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 Hei! Knoter litt med litt PHP .. Jeg kan det egentlig ikke, så ser meg fort litt blind på dette her, og klarer ikke å se hvor feilene ligger. Skal hente inn en fil og bytte ut en liten tekst. Dette er forenkla, men gir et bilde av hva jeg sliter med ... Har følgende tekst i filen jeg vil inkludere: <img src="1.jpg" /> og jeg ønsker å bytte det ut til: <img src="2.jpg" /> Skjønner? Surfa meg frem til følgende mulighet, men den funker ikke, og siden jeg ikke kan PHP finner jeg ikke løsningen ... Har virkelig prøvd, men klarer ikke løse det. <?php function replaceImagePath($text) { return preg_replace('#1.jpg#', '2.jpg', $text); } ob_start('replaceImagePath'); include('bilde.php'); exit(); ?> Noen som er snille og hjelper meg? Lenke til kommentar
Garanti Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 (endret) function replaceImagePath($text, $num){ return preg_replace('/[0-9]/i', $num, $text); } Edit: Liten feil Endret 9. oktober 2008 av Garanti Lenke til kommentar
Dunestar Skrevet 9. oktober 2008 Forfatter Del Skrevet 9. oktober 2008 Takk! Men dersom det skal stå tekst der? For eksempel at jeg skal bytte ut "katt.jpg" til "hund.jpg"? Lenke til kommentar
Garanti Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 (endret) Her: function replaceImagePath($text, $repl){ return preg_replace('/(<img src=")(.*)(.jpg" \/>)/i', '$1'.$repl.'$3', $text); } Endret 9. oktober 2008 av Garanti Lenke til kommentar
Dunestar Skrevet 9. oktober 2008 Forfatter Del Skrevet 9. oktober 2008 Takk igjen! Men allikevel, siden jeg driver med PHP på et latterlig lavt nivå, kan du skrive hele PHP-skriptet? Fra "<?php" til "?>"? Det som er greia er at jeg må dytte inn "/contents/" i stien til alle bildene i en side jeg ønsker å inkludere. Altså skal da <img src="etellerannet.jpg" /> bli til <img src="/contents/etellerannet.jpg" /> .. Hadde vært utrolig snilt om du kunne hjelpe meg med det .. Jeg vet ikke helt hvordan jeg skal bruke det du gir meg .. Lenke til kommentar
Garanti Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 Sådan: <?php function replaceImagePath($text, $link){ return preg_replace('/(<img src=")(.*)(.jpg" \/>)/i', '$1'.'/contents/'.$link.'$3', $text); } $bilde ='<img src="etellerannet.jpg" />'; $bilde = replaceImagePath($bilde, 'etellerannet'); // $bilde er nå <img src="/contents/etellerannet.jpg" /> ?> ? Lenke til kommentar
Dunestar Skrevet 9. oktober 2008 Forfatter Del Skrevet 9. oktober 2008 Setter stor pris på at du hjelper meg, Garanti! Mulig jeg forklarte litt dårlig, men cluet er at <img>-elementet ligger i en php-fil jeg ønsker å inkludere til en annen .php-fil. I samme operasjon må det smettes inn "/contents/" i stien til bildet. Er du med? Lenke til kommentar
Garanti Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 (endret) Hei! Nå har jeg sittet i halve kveld og fundert på denne oppgaven, så håper jeg forstod deg rett nå $tekst = 'Laang tekst med bilder: <img src="haha.jpg" />, og <img src="hoho.jpg" />'; function add_folder($image){ $folder = '/content/'; return preg_replace('/(<img src=")(.*)(\.jpg" \/>)/i', '$1'.$folder.'$2$3', $image[0]); } function replaceImagePath($text){ return preg_replace_callback('/(<img src=".*\.jpg" \/>)/iU', "add_folder", $text); } echo replaceImagePath($tekst); ?> Edit: Forøvrig et passende innlegg nummer 1500! Endret 9. oktober 2008 av Garanti Lenke til kommentar
Dunestar Skrevet 10. oktober 2008 Forfatter Del Skrevet 10. oktober 2008 Takk skal du ha, Garanti! Skriptet fungerer, men tror vi igjen misforstod hverandre littegrann. Følgende tekst: "Laang tekst med bilder: <img src="haha.jpg" />, og <img src="hoho.jpg" />" står i et annet dokument enn hvor dette skriptet ligger. Altså må den andre filen hentes inn, jeg vil anta ved hjelp av en include-funksjon, eks include 'sti/til/filen.php' ... Nesten flaut å spørre deg om å hjelpe meg enda en gang, men er det mulig? Lenke til kommentar
Garanti Skrevet 10. oktober 2008 Del Skrevet 10. oktober 2008 ingen broblem! Erstatt $tekst = 'Laang tekst med bilder: <img src="haha.jpg" />, og <img src="hoho.jpg" />'; med $fil = 'sti/til/fil'; $fh = fopen($fil , 'r'); $tekst = fread($fh, filesize($fil)); Lenke til kommentar
Dunestar Skrevet 10. oktober 2008 Forfatter Del Skrevet 10. oktober 2008 Dessverre funka det dårlig når jeg måtte inkludere filen ... Hele koden, som nå ikke funker, ser sånn ut: <?php $fil = '/contents/nyheter.php'; $fh = fopen($fil , 'r'); $tekst = fread($fh, filesize($fil)); function add_folder($image){ $folder = '/contents/'; return preg_replace('/(<img src=")(.*)(\.jpg" \/>)/i', '$1'.$folder.'$2$3', $image[0]); } function replaceImagePath($text){ return preg_replace_callback('/(<img src=".*\.jpg" \/>)/iU', "add_folder", $text); } echo replaceImagePath($tekst); ?> Jeg klarer ikke finne feilen .. Lenke til kommentar
Garanti Skrevet 10. oktober 2008 Del Skrevet 10. oktober 2008 Kan du vise hvordan nyheter.php ser ut? Lenke til kommentar
Dunestar Skrevet 11. oktober 2008 Forfatter Del Skrevet 11. oktober 2008 (endret) No problem! Den ser slik ut: <ul id="news"> <li> <img class="cushycms" src="1.jpg" height="39" width="175" /> <div class="cushycms-text"> <h3><a href="/drammen/">Drammen</a></h3> <p>Intro er i gang i elvenes by!</p> </div></li> <li> <img class="cushycms" src="2.jpg" height="39" width="175" /> <div class="cushycms-text"> <h3><a href="/sandnes/uke/">Nye tema på Uke!</a></h3> <p>Kroppen, Den Store Forskjellen og Lifedesign for Par.</p> </div></li> <li> <img class="cushycms" src="3.jpg" height="39" width="175" /> <div class="cushycms-text"> <h3><a href="/sandnes/team/">Engasjer deg!</a></h3> <p>Bli med på team?</p> </div></li> </ul> Og altså skal da stien til hvert av bildene slik ut: src="/contents/1.jpg" osv etter at de har blitt inkludert i et annet dokument .. Endret 11. oktober 2008 av Dunestar Lenke til kommentar
Garanti Skrevet 11. oktober 2008 Del Skrevet 11. oktober 2008 Her da: Den forrige "versjonen" støttet ikke at du brukte andre attributter enn "src". Det gjør derimot denne: $fil = 'sti/til/fil'; $fh = fopen($fil , 'r'); $tekst = fread($fh, filesize($fil)); function add_folder($image){ $folder = '/content/'; return preg_replace('/(<img.*src=")(.*)(\.jpg".*\/>)/i', '$1'.$folder.'$2$3', $image[0]); } function addImagePath($text){ return preg_replace_callback('/(<img.*src=".*\.jpg".*\/>)/iU', "add_folder", $text); } echo addImagePath($tekst); Lenke til kommentar
Martin A. Skrevet 11. oktober 2008 Del Skrevet 11. oktober 2008 Er det ikke enklere å gjøre dette med str_replace, da? <ul id="news"> <li> <img class="cushycms" src="<#IMG_DIR#>/1.jpg" height="39" width="175" /> <div class="cushycms-text"> <h3><a href="/drammen/">Drammen</a></h3> <p>Intro er i gang i elvenes by!</p> </div></li> <li> <img class="cushycms" src="<#IMG_DIR#>/2.jpg" height="39" width="175" /> <div class="cushycms-text"> <h3><a href="/sandnes/uke/">Nye tema på Uke!</a></h3> <p>Kroppen, Den Store Forskjellen og Lifedesign for Par.</p> </div></li> <li> <img class="cushycms" src="<#IMG_DIR#>/3.jpg" height="39" width="175" /> <div class="cushycms-text"> <h3><a href="/sandnes/team/">Engasjer deg!</a></h3> <p>Bli med på team?</p> </div></li> </ul> $fil = 'sti/til/fil'; $fh = fopen($fil , 'r'); $tekst = fread($fh, filesize($fil)); $imgDir = '/content'; $tekst = str_replace( '<#IMG_DIR#>', $imgDir, $tekst ); echo $tekst; Lenke til kommentar
Wackamole Skrevet 11. oktober 2008 Del Skrevet 11. oktober 2008 da kan han jo like godt bare skrive /contents/ bakom bildefila, istedenfor <#img_dir#>, litt av poenget er vell at det skulle gå automatisk, right? Lenke til kommentar
Martin A. Skrevet 11. oktober 2008 Del Skrevet 11. oktober 2008 Da kan han jo like gjerne skrive hele stien til bildet med en gang. Lenke til kommentar
Wackamole Skrevet 11. oktober 2008 Del Skrevet 11. oktober 2008 litt av poenget er vell at det skulle gå automatisk, right? Lenke til kommentar
Martin A. Skrevet 12. oktober 2008 Del Skrevet 12. oktober 2008 Hvor er automatikken når han uansett må skrive deler av bildetaggen? Lenke til kommentar
Wackamole Skrevet 12. oktober 2008 Del Skrevet 12. oktober 2008 vetta fan, må du spørre han om... 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å