Gå til innhold

ÆØÅ i bildet som er laget av php[LØST!]


Anbefalte innlegg

Hei! Jeg har laget et bilde i php som jeg setter tekst i, men teksten inneholder ø som blir gjort om til et rart tegn, php fila begynner med header ("Content-type: image/png"); siden det skal fungere som et bilde, men er det noe jeg kan sette inn for å få charsettet iso-8859-1 slik at æøå osv funker?

 

Takk for svar!

Endret av 0lav
Lenke til kommentar
Videoannonse
Annonse

Legg ut litt kildekode? Hvis jeg gjetter riktig så er dette fordi fonten din ikke har riktige tegntabeller, jeg hadde det samme problemet da jeg prøvde å få fonten Myriad fra Adobe til å fungere i PHP. Løsningen for meg ble å rekompilere fontene med FontLab, men uten å se eksempelkode, font og resultatbilde kan jeg ikke si noe om du har samme problem som jeg hadde.

Lenke til kommentar

Hei!

 

Her er hele koden:

<?php
header ("Content-type: image/png");
$engelsk = array(
   "January", 
   "February", 
   "March", 
   "April", 
   "May", 
   "June", 
   "July", 
   "August", 
   "October", 
   "November", 
   "September", 
   "December",
   "Monday",
   "Tuesday",
   "Wednesday",
   "Thursday",
   "Friday",
   "Saturday",
   "Sunday"
);

$norsk =array(
   "Januar", 
   "Februar", 
   "Mars", 
   "April", 
   "Mai", 
   "Juni", 
   "Juli", 
   "August", 
   "Oktober", 
   "November", 
   "September", 
   "Desember",
   "Mandag",
   "Tirsdag",
   "Onsdag",
   "Torsdag",
   "Fredag",
   "Lørdag",
   "Søndag"
);
$img_handle = imageCreateFromPNG("1.png");
$color = ImageColorAllocate ($img_handle, 100, 100, 100);
$ip = array("Din ip er ".$_SERVER['REMOTE_ADDR'],"I dag er det ". str_replace($engelsk, $norsk,date(l)));
$ip2=array_rand($ip, 2);
ImageString ($img_handle, 3, 10, 9, $ip[$ip2[0]], $color);
ImagePng ($img_handle);
ImageDestroy ($img_handle);
?>

 

Scriptet for å vise bildet fant jeg på en eller annen tutorial, og det som gjør om måned og uke dag navnene fant jeg på http://www.unrealized.org/..

 

 

Edit: Slik blir bildet:

bildephp2gg.png

Endret av 0lav
Lenke til kommentar
Prøv å erstat

 

,"lørdag",

 

med:

 

,utf8_encode("lørdag"),

Når jeg prøvde det så ble riktignokk det "rare" tengnet byttet ut, men det ble ikke ø fordi, slik ble det:

bilde2php3th.png

Prøv med utf8_decode i stedet da:)

Funker ikke det heller...hmm.. Men er det ikke noe jeg kan skrive i header() elns da?

Lenke til kommentar
Prøv å erstat

 

,"lørdag",

 

med:

 

,utf8_encode("lørdag"),

Når jeg prøvde det så ble riktignokk det "rare" tengnet byttet ut, men det ble ikke ø fordi, slik ble det:

bilde2php3th.png

Prøv med utf8_decode i stedet da:)

Funker ikke det heller...hmm.. Men er det ikke noe jeg kan skrive i header() elns da?

Nei, det vil jeg ikke tro.

Da denne skriften kommer som et bilde, og ikke i form av ascii.

 

Du tenkte kanskje på å endre hvilken characeter encoding det er, i header?

 

Er nok ikke der problemet er.

Du kan prøve å skrive iso8859-1 koden, eller utf-8 koden for ø, og sjekke om DET funker :)

 

Prøv:

\xf8 i stedet for ø :)

 

Altså:

 

l\xf8rdag

 

Hvis dette ikke funker, prøv:

 

utf8_encode("l\xf8rdag")

Eller:

utf8_decode("l\xf8rdag")

 

Litt usikker på hvem du skal bruke, tror det er den første.

Endret av Axentrix
Lenke til kommentar

Hei! Det funket når jeg byttet font. Men når jeg lastet det opp på webserveren som jeg leier så fikk jeg det ikke til, jeg lastet opp fonten også. Jeg fikk kun denne feil mld:

The image “http://megaspill.net/bilde.php” cannot be displayed, because it contains errors.

 

Serveren jeg leier kjører Linux, funker ikke disse fontene (.ttf) under linux? Siden det funker helt fint på min Windows XP appache server...

Lenke til kommentar

Her er koden slik den er nå...

 

<?php
header ("Content-type: image/png");
$engelsk = array(
   "January", 
   "February", 
   "March", 
   "April", 
   "May", 
   "June", 
   "July", 
   "August", 
   "October", 
   "November", 
   "September", 
   "December",
   "Monday",
   "Tuesday",
   "Wednesday",
   "Thursday",
   "Friday",
   "Saturday",
   "Sunday"
);

$norsk =array(
   "Januar", 
   "Februar", 
   "Mars", 
   "April", 
   "Mai", 
   "Juni", 
   "Juli", 
   "August", 
   "Oktober", 
   "November", 
   "September", 
   "Desember",
   "Mandag",
   "Tirsdag",
   "Onsdag",
   "Torsdag",
   "Fredag",
   "Lørdag",
   "Søndag"
);
$ip = array("Din ip er ".$_SERVER['REMOTE_ADDR'],"I dag er det ". str_replace($engelsk, $norsk,date(l)), "Vi er i år ".date(Y),"Klokken er ".date("G:i:s"));
$ip2=array_rand($ip, 4);
$im = imagecreatefrompng("1.png");
$color = imagecolorallocate($im, 100, 100, 100);
$px = 8;
$py = 20;
$font = 'tahoma.ttf';
imagettftext($im, 10, 0, $px, $py, $color, $font, $ip[$ip2[0]]);
imagepng($im);
imagedestroy($im);
?>

 

Både bildet og fonten ligger i samme mappe som php fila...

 

 

 

EDIT: FIkk det til nå!:D Fikk hjelp av en på MSN som sa at jeg måtte legge til linjen her for at det skulle funke:

putenv("GDFONTPATH=/var/www/vhosts/megaspill.net/httpdocs/");

Endret av 0lav
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...