Avatar billede grav Nybegynder
24. januar 2005 - 21:35 Der er 9 kommentarer og
1 løsning

Special-tegn

Jeg har lavet et script, som genererer en liste over filer i et bibliotek og udskriver hver fil med et link.
Scriptet laver en liste med
$handle = opendir(".");
og henter og udskriver hver enkelt fil-indgang med
$filename = readdir($handle)
echo "<a href='$filename'>$filename</a><br>\n";

Problemet er at denne metode ikke er kompatibel med visse special-tegn som f.eks. æøå. Hedder en fil f.eks. 'tæst.txt' får jeg fejl 403: Forbidden.
Jeg kan se at et æ bliver konverteret om til %E6, hvor imod webserverens (Apache) indbyggede dir-listing laver et æ om til %c3%a6.

Min teori er altså at PHP laver en konvertering af special-tegn som webserveren ikke kan forstå.
Hvorhenne 'synkroniserer' man denne konvertering?
Jeg kører Windows XP Pro, Apache/2.0.52 og PHP/5.0.3

En test kan findes her:
http://betafunk.dk/exptest/ - Liste genereret af Apache
http://betafunk.dk/exptest/test.php - Liste genereret af PHP
Avatar billede hmortensen Nybegynder
24. januar 2005 - 22:37 #1
Det virker da fint nok her...
Avatar billede hmortensen Nybegynder
24. januar 2005 - 22:43 #2
Dit script gir da ingen fejl.

Tror ikke jeg forstår dit problem.
Avatar billede grav Nybegynder
24. januar 2005 - 22:49 #3
hm: Ha! Har lige checket scriptet i Internet Explorer, og her får jeg ingen fejl.
Problemet ligger åbenbart på klientsiden. Jeg bruger almindeligvis Firefox som browser :-)
Avatar billede hmortensen Nybegynder
24. januar 2005 - 23:00 #4
Jeg er forvirret nu.

Jeg prøvede det lige af selv, efter at ha hentet firefox.

Hvis jeg prøver på mit webhotel, virker det i firefox, men ik i ie, og hos dig omvendt :S
Avatar billede hmortensen Nybegynder
24. januar 2005 - 23:03 #5
Og lokalt virker begge to.
Måske et meta tag med hvilken encoding der skal bruges, ville hjælpe.
Avatar billede grav Nybegynder
24. januar 2005 - 23:28 #6
Besynderligt med det du har prøvet?!

Jeg har prøvet med
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
uden held. Men det har måske ikke noget med encoding at gøre? :-)
Avatar billede hmortensen Nybegynder
24. januar 2005 - 23:44 #7
Var nu mere den her jeg tænkte på:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Avatar billede grav Nybegynder
24. januar 2005 - 23:49 #8
Har prøvet det nu, men uden held.
Det er i øvrigt den, både FF og IE vælger som default.
Har lidt lyst til at overgive mig til a-z, men når Apache kan korrigere for det i alle tilfældene (vel også på dit webhotel?), så bør der jo være en løsning ...
Avatar billede hmortensen Nybegynder
24. januar 2005 - 23:51 #9
Jeg ved ikke lige hvad en løsning kunne være, da jeg altid holder mig fra spcial tegn i filnavne.
Avatar billede grav Nybegynder
25. januar 2005 - 00:01 #10
Det gør jeg normalt også af princip.
Men disse filer skal kunne downloades, så æstetikken skal bevares, selv ved filnavnene ;-)
Anyways, tak for hjælpen, jeg kom da rundt om emnet og fik da udelukket nogle ting.
Jeg bruger en anden PHP-applikation, som kommer uden om problemet, så jeg må igang med noget reverse engineering ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester