/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mellemrum i filnavne
Fra : Leonard


Dato : 23-02-05 13:29

Jeg er ved at kode et galleri, som skal finde billeder og mapper på
serveren og udfra dette generere en oversigt, hvor mankan klikke sig
rundt til de forskellige billeder.
Billederne lægges direkte ind på serveren med filhåndtering og der
oprettes mapper i den proces.
Men oprettes der en mappe med mellemrum i navnet, så går det galt for
bl.a. getimagesize og filemtime osv. da serveren tilsyneladende
præsenterer filnavnet til funktionerne med mellemrum erstattet med
%20.

Det må være en opgave der kan løses så der stadig kan optræde
mappenavne med mellemrum i?

Og det går helt galt hvis der bruges æøå ...

--
mvh Leonard
Har du kigget på: http://dk.php.net/ el. http://www.webcafe.dk/

 
 
Peter Brodersen (23-02-2005)
Kommentar
Fra : Peter Brodersen


Dato : 23-02-05 13:38

On Wed, 23 Feb 2005 13:29:19 +0100, Leonard <usenet@leonard.dk> wrote:

>Men oprettes der en mappe med mellemrum i navnet, så går det galt for
>bl.a. getimagesize og filemtime osv. da serveren tilsyneladende
>præsenterer filnavnet til funktionerne med mellemrum erstattet med
>%20.

Hvordan får du i første omgang fat i de filnavne? Der burde ikke være
nogen problemer, medmindre din tilgang til filoversigten er
uhensigtsmæssig.

Du kan dog kigge på rawurldecode() for at løse det aktuelle problem -
hvis du altså fortsat får filnavne i den form.

--
- Peter Brodersen

Leonard (23-02-2005)
Kommentar
Fra : Leonard


Dato : 23-02-05 14:40

Peter Brodersen <usenet2005@ter.dk> wrote:

>Hvordan får du i første omgang fat i de filnavne?

med readdir():

   if ($dh = opendir("$original$dir")) {
      while (($file = readdir($dh)) !== false) {
         if (($file!=".") && ($file!="..")) {


--
mvh Leonard
Har du kigget på: http://dk.php.net/ el. http://www.webcafe.dk/

Peter Brodersen (23-02-2005)
Kommentar
Fra : Peter Brodersen


Dato : 23-02-05 14:53

On Wed, 23 Feb 2005 14:40:22 +0100, Leonard <usenet@leonard.dk> wrote:

>med readdir():

readdir() returnerer det korrekte navn, så tilsyneladende *har*
filerne rent faktisk ikke mellemrum i sig, men hedder fx "foo%20bar" i
selve filsystemet.

Uanset hvad, så skal du stadigvæk bruge rawurlencode() når du skal
præsentere de filnavn (at hente en fil ved navn "foo%20bar" kræver et
request til "foo%2520bar").

--
- Peter Brodersen

Leonard (23-02-2005)
Kommentar
Fra : Leonard


Dato : 23-02-05 15:11

Peter Brodersen <usenet2005@ter.dk> wrote:

>readdir() returnerer det korrekte navn, så tilsyneladende *har*
>filerne rent faktisk ikke mellemrum i sig, men hedder fx "foo%20bar" i
>selve filsystemet.

Fejlen lå et lidt andet sted.
Jeg bruger adresselinien til at videresende variablers indhold, og så
splitter jeg REQUEST_URI op i dele.
Og browseren oversætter <a href="test mellemrum"> til
test%20mellemrum, og så får min variabel jo en forkert værdi. Det blev
reddet med urldecode() men der er noget andet helt galt med æøå.

Hvordan tjekker jeg hvilket tegnsæt serveren kører med?
- det er en Fedora, Apache 2

--
mvh Leonard
Har du kigget på: http://dk.php.net/ el. http://www.webcafe.dk/

Rasmus Rimestad (23-02-2005)
Kommentar
Fra : Rasmus Rimestad


Dato : 23-02-05 13:42

Leonard wrote:
> Men oprettes der en mappe med mellemrum i navnet, så går det galt for
> bl.a. getimagesize og filemtime osv. da serveren tilsyneladende
> præsenterer filnavnet til funktionerne med mellemrum erstattet med
> %20.

> Og det går helt galt hvis der bruges æøå ...

Det er ingen god ide at bruge mellemrum eller æøå i filnavne fordi nettlæserne behandler dem på
forskellige måder. Nogle konverterer %20 til mellemrum, andre gør ikke og samme med æøå. Det bædste
er om du, når mapperne opprettes, erstatter alle mellemrum med _, æ = ae, ø= oe, å = aa eller noget
sådan noget. Det er meget tryggere og du er garantert en bedre kompatibilitet med stort sett de
fleste nettlæsere som du ikke har noen garanti på dersom du bruke særdanske tegn eller mellemrum.

--
Rasmus Rimestad, webprogrammerer
Webdatabaser til en pris du kan leve med --> http://www.rimestad.no

Peter Brodersen (23-02-2005)
Kommentar
Fra : Peter Brodersen


Dato : 23-02-05 14:52

On Wed, 23 Feb 2005 13:41:35 +0100, Rasmus Rimestad
<rimestad@rimestad.no> wrote:

>Det er ingen god ide at bruge mellemrum eller æøå i filnavne fordi nettlæserne behandler dem på
>forskellige måder. Nogle konverterer %20 til mellemrum, andre gør ikke og samme med æøå. Det bædste
>er om du, når mapperne opprettes, erstatter alle mellemrum med _, æ = ae, ø= oe, å = aa eller noget
>sådan noget. Det er meget tryggere og du er garantert en bedre kompatibilitet med stort sett de
>fleste nettlæsere som du ikke har noen garanti på dersom du bruke særdanske tegn eller mellemrum.

Det er jo blot et spørgsmål om at escape de rette steder. Hvis man
skal angive et hyperlink, findes der passende funktioner til det
(rawurlencode(), etc.).

Det er forståeligt og fint, at man holder sig internt fra mellemrum,
æøå, etc., hvis man ikke kan overskue det. Men jeg synes, det er synd,
hvis der aldrig opstår nogen udbredelse af det, og folk undgår at
bruge mellemrum for at tilgodese dårlige scripts.

--
- Peter Brodersen

Bertel Lund Hansen (23-02-2005)
Kommentar
Fra : Bertel Lund Hansen


Dato : 23-02-05 21:52

Peter Brodersen skrev:

>Det er forståeligt og fint, at man holder sig internt fra mellemrum,
>æøå, etc., hvis man ikke kan overskue det. Men jeg synes, det er synd,
>hvis der aldrig opstår nogen udbredelse af det, og folk undgår at
>bruge mellemrum for at tilgodese dårlige scripts.

Jeg har for år tilbage lagt mig fast på den politik kun at bruge
netsikre tegn og små bogstaver. Det har sparet mig for en masse
bøvl og fremtidige spekulationer. Da navnene er interne i en vis
forstand, er jeg ligeglad med at de ikke kan blive ægte danske.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Leonard (23-02-2005)
Kommentar
Fra : Leonard


Dato : 23-02-05 22:33

Bertel Lund Hansen <nospamfilius@lundhansen.dk> wrote:

>Jeg har for år tilbage lagt mig fast på den politik kun at bruge
>netsikre tegn og små bogstaver. Det har sparet mig for en masse
>bøvl og fremtidige spekulationer. Da navnene er interne i en vis
>forstand, er jeg ligeglad med at de ikke kan blive ægte danske.

Ja, til eget brug er det også fint nok, men når andre skal kunne bruge
det og er vant til at navngive på dansk, ja, så er det bare ikke så
godt længere.

--
mvh Leonard
Har du kigget på: http://dk.php.net/ el. http://www.webcafe.dk/

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste