McLysberg Skrevet 13. oktober 2006 Del Skrevet 13. oktober 2006 Holder på og lage en filbassert nettside der man kan legge inn nettsider i forskjellige mapper som automatisk genererer sider. Men så har jeg ett problem når man bruker MSword og lager dokumenter med bilder. Da lager MSword en mappe for bildene. (filnavn-filer) el.l. Problemet går ut på tolking av det norske tegnsettet.(øæå). Hvis jeg lager et word-webside som heter Trådløst nettverk blir "bilde mappen" kalt Trådløst nettverk-filer.. Problemet da er at linkene ikke fungerer i firefox. i IE og Opera fungerer det fint. Men firefox krever %c3%a5 istede for å osv. Noe av koden: PHP leser ut innholdet av filen og legger den i $contents. $handle = fopen($FilePath, "r"); $contents = fread($handle, filesize($FilePath)); fclose($handle); Da kan jeg kjøpe echo $contents for å skrive ut innholdet. Men som sagt så fungerer ikke dette i Firefox. Hvis jeg behandler $contents først så vises bildene fint i firefox. $contents = str_replace("å", "%c3%a5", $contents); $contents = str_replace("ø", "%c3%b8", $contents); $contents = str_replace("æ", "%c3%a6", $contents); Men problemet nå er at alle æøå i $contents blir byttet ut. og da blir teksten slik: Tr%c3%a5dl%c3%b8s guide .. Ikke særlig leselig. Så det jeg har lyst til å få til er å byttet ut æøå med %c3%a5 osv kun innenfor img taggene. <img width=209 height=149 src="Trådløst nettverk/Trådløs%20guide%20windows%20XP-filer/image002.jpg" align=left hspace=12> til å bli <img width=239 height=292 src="Tr%c3%a5dl%c3%b8st nettverk/Tr%c3%a5dl%c3%b8s%20guide%20windows%20XP-filer/image003.jpg" align=left hspace=12> Har slitt med dette en god stund nå så hvis noen har en ide så hadde det vært SUPERT! Lenke til kommentar
Gjest Slettet+142 Skrevet 13. oktober 2006 Del Skrevet 13. oktober 2006 kanskje urlencode() e noe for deg? Lenke til kommentar
McLysberg Skrevet 13. oktober 2006 Forfatter Del Skrevet 13. oktober 2006 kanskje urlencode() e noe for deg? 7060445[/snapback] Hvordan skal jeg bruke denne? $contents inneholder hele html dokumentet som er statisk skrevet i ms word. Hvordan skal jeg få tatt ut url i img taggen og døttet den inn i $contents igjen? Lenke til kommentar
Gjest Slettet+142 Skrevet 13. oktober 2006 Del Skrevet 13. oktober 2006 (endret) preg_replace() PHP <? $dokument_ny = preg_replace('/\<img (.*?)\>/is', "<img ".urlencode("$1").">", $dokument); ?> denne koden e ikkje testet. eg vet heller ikkje om den virker men det e no en "byggetegning". så nestemann som kan litt om preg_replace kan godt fikse den over EDIT: testet koden over nå, virket IKKE. SE Endret 13. oktober 2006 av Slettet+142 Lenke til kommentar
McLysberg Skrevet 13. oktober 2006 Forfatter Del Skrevet 13. oktober 2006 Fungerte "nesten" fikk <img %241> Noe som kan editeres i syntaxen på preg_replace? Lenke til kommentar
Gjest Slettet+142 Skrevet 13. oktober 2006 Del Skrevet 13. oktober 2006 (endret) tror det ja.. du kan se hvordan det blir ved å se litt på siden HER kan kanskje være bruk for preg_replace_callback() ? Endret 13. oktober 2006 av Slettet+142 Lenke til kommentar
Zic0 Skrevet 13. oktober 2006 Del Skrevet 13. oktober 2006 (endret) <?php function url_encode($matches){ return "<img$matches[1] src=\"". str_replace(array("æ", "ø", "å"), array("%c3%a5", "%c3%b8","%c3%b8"), $matches[2]) ."\"$matches[3]>"; } echo preg_replace_callback("#\<img(.*?) src=\"(.*?)\"(.*?)\>#", "url_encode", $dokument); ?> Ikke testet... Endret 13. oktober 2006 av Zic0 Lenke til kommentar
McLysberg Skrevet 16. oktober 2006 Forfatter Del Skrevet 16. oktober 2006 Da har jeg fått testet denne. Men det ser ikke ut til at den gjør noe ting som helst. linkene i img taggen er identiske.. Flere ideer? Lenke til kommentar
crysys Skrevet 16. oktober 2006 Del Skrevet 16. oktober 2006 Hva med? $new_content = preg_replace('/<img(.*?)src="(.*?)"(.*?)\>/i', '<img'.$1.'src="'.urlencode($2).'"'.$3.'>', $content); Lenke til kommentar
McLysberg Skrevet 17. oktober 2006 Forfatter Del Skrevet 17. oktober 2006 JIPPI! Da fungerer det! :-) function url_encode($matches){ return "<img$matches[1] src=\"". str_replace(array("æ", "ø", "å"), array("%c3%a6", "%c3%b8","%c3%a5"), $matches[2]) ."\"$matches[3]>"; } $contents = preg_replace_callback("#\<img(.*?) src=\"(.*?)\"(.*?)\>#", "url_encode", $contents); Fikk denne koden tidligere men da fungerte den ikke... Men så så jeg at arrayene i funksjonen var feil. Bytta feil bokstav mot feil tegnoppsett... Er det noen som har ett tips på hvordan jeg kan få koden over til å fungere selv om img taggen er over to linjer? <img width=239 height=292 src="TrÃ¥dløst nettverk/Trådløs%20guide%20windows%20XP-filer/image003.jpg" align=left hspace=12></p> Lenke til kommentar
McLysberg Skrevet 17. oktober 2006 Forfatter Del Skrevet 17. oktober 2006 Den var enkel.... $contents = ereg_replace( "\n", " ", $contents); Fjerner \n fra $contents først.. :-) 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å