Webstatt.org - Community seit 2006 - 2012 (2024?)

Umlaute in Links

user-227
26.02.2008 16:24

Auch wenn der Titel sich dumm anhört ,hört mir erstmal zu Fettes Grinsen

Also ich habe mit PHP ein kleines Programm geschrieben dass praktisch wie ein Explorer arbeitet. Aus bestimmten verzeichnissen liest es Dateien aus die darin enthalten sind und stellt diese als Links im Browser da.

Das Programm liest also die Dateinamen aus und speichert diese in einer Variablen. Diese Variable wird dann direkt als pfad verwendet.

also z.b. :
 <a href="bereich1/'.$dateiname.'">'.$dateiname.'</a>


Das Problem ist jetzt natürlich wenn eine Datei Umlaute enthält, funktioniert der Link natürlich nicht. Hab versucht das mit der funktion
htmlentities
hinzukriegen aber es klappt einfach nicht, warum auch immer.

mit den charsets da blick auch nicht so ganz durch, kann es damit zusammenhängen?

Hoffe einer versteht das überhaupt Fettes Grinsen

Gruß user-227

user-203
26.02.2008 16:44

Wenn ich dich richtig verstanden habe, suchst du sowas wie rawurlencode() oder halt die Umkehrfunktion

Wo ist das Problem bei den Charsets?

Denkt dran, Kinder auf dem Rücksitz verursachen Unfälle, Unfälle auf dem Rücksitz verursachen Kinder.
user-227
27.02.2008 16:34

ok also das mit dem urlencode klappt nur bei den ordnern, diese öffnet er jetzt auch wenn sie umlaute enthalten bei dateien weigert er sich aber leider mit folgender meldung:



Zugriff verweigert!

Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 403
localhost
02/27/08 17:37:55
Apache/2.2.6 (Win32) DAV/2 mod_ssl/2.2.6 OpenSSL/0.9.8g mod_autoindex_color PHP/5.2.5



liegt das vllt. auch an den server einstellungen dass er dateien die umlaute enthalten nicht öffnen will?

gruß lenny

user-217
02.03.2008 22:10

Ist ja auch klar das es nicht geht zwinkern Umlaute sind in Dateinamen normalerweise nicht erlaubt und werden daher nicht bei einem Link akzeptiert also lass die umlaute besser raus.

user-227
12.03.2008 14:56

ich weiss aber es muss doch irgendwie möglich sein per php oder nicht?

von mir aus kann er ja auch die umlaute "zum verschicken" unwandeln und danach wieder herstellen.

also mit diesem urlencode klappt das nur bei pfaden... dateien die umlaute enthalten kann man damit immer noch nicht öffnen.

ein freund meinte jetzt dass es vllt. mit einem regulären ausdruck möglich ist, davon hab ich aber gar keine ahnung muss ich mich erstmal mit beschäftigen.


mir ist schon klar dass man normalerweise besser auf umlaute verzichtet, aber wenn der kunde es so will ^^

gruß lenny

user-227
26.03.2008 14:02

ok ich hab es jetzt mal in html getestet:

das heisst einfach eine datei "index.html" in der ein link enthalten ist auf die datei "testö.html". funktioniert einwandfrei.

wenn ich die Dateiendungen von .html zu .php ändere motzt der apache:

Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required 'C:/xampp/htdocs/test/testö.php' (include_path='.;C:\xampp\php\pear\'zwinkern in Unknown on line 0


beide dateien sind mit utf-8 kodiert ich habe auch schon in der php.ini die kodierung von iso auf utf umgestellt... will trotzdem nicht

kennst sich da einer aus? kodiert php links automatisch anders als html?

ich bin ratlos...

gruß user-227