Gå til innhold

"Instalere" fonter på serveren


Anbefalte innlegg

Skrevet

Går det på noen måte ann at jeg bruker mine egne fonter på en webside som blir instalert ved hjelp av PHP? Driver på med en side der jeg ikke har tenkt å bruke vanlige fonter, men andre som ikke de fleste har, så det hadde vert kjekt med en funksjon der fontene ble instalert.

Videoannonse
Annonse
Gjest Slettet-df17e
Skrevet

Hmm.. Veit du om fontene du bruker blir hentet fra tjeneren eller klienten da ?

Dette har jeg faktisk alderi tenkt over før!

 

Men, om fontene blir hentet fra klientene så tror jeg det kan bli vanskelig!

Om det da går på klienten så er vel JavaScript klient basert i motsettning til PHP!

Skrevet

Fontene blir hentet fra klienten, mens informasjon om hvilken font ligger på serversiden. Derfor er det ofte lurt å legge med sekundære fonter der du spesifiserer fonter som blir brukt av webapplikasjonen din.

Skrevet (endret)

Det finnes metoder for å generere bilder med egendefinerte fonter i PHP, men det er ikke mulig å installere fonter på klientsiden vha. PHP.

Endret av Lokaltog
Skrevet

Hvis du er heldig og har Ming innstalert på serveren, så kan du lage Flash i PHP. swffont lar deg inkludere fonter inn i .swf fila. Fontene må være i .fdb format. Du kan konvertere .ttf fonter med ttf2fft og makefdb. Flash støttes i mange browsere, og filstørrelsen er forholdsvis liten hvis du skal presentere mye tekst. Innebygget flytkontroll er også kjekt. Ved små tekster er det en fordel å bruke GD ettersom .swf fila blir minimum så stor som fontfila som gjerne er rundt 20-30Kb.

Ming er vel fortsatt i eksperimentell stadiet, og er vel av den grunn utelatt fra de fleste webhotell, men det finnes unntak.

 

En annen måte kan være å bruke javascript og små bilder for hvert tegn. Istedenfor å sende mange <img> tagger, som fort lager stor html kode, så kan man jukse litt med javascript. Her er et forenklet eksempel.

<html>
<script>
function pngWrite(tekst) {
 var charCheck = /[a-z0-9]/i;
 for(var i=0;i<tekst.length;i++) {
   var tegn = tekst.substring(i,i+1);
   if(tegn.match(charCheck)) {
     document.write('<img src="'+tegn+'.png" alt="'+tegn+'">');
   } else {
     document.write(tegn);
   }
 }
}
//+evt. image preloader
</script>
<body>
<script>pngWrite('Dette er en test.')</script>
</body>
</html>

Problemet med denne løsningen (bortsett fra å være uhyre "dirty") er at du får ingen flytkontroll (wordwrap), og folk som har slått av javascript ser ingenting (Med mindre du bruker <noscript> tags i tillegg).

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