![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 23.10.2003 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich zainteresowanych!
Uploaduje plik - raczej w standardowy sposób, bez udziwnień - kopiuje plik przez formularz, potem sprawdzenie czy jest skopiowany, potem wygenerowanie bezpiecznej nazwy i zapisanie go pod ta nazwa w katalogu docelowym. Sprawa dotyczy właśnie tej bezpiecznej nazwy. Przepuszczam nazwe pliku przez taką funkcję:
Jak widać funkcja ta zamienia polskie naki zakodowane w iso-8859-2 na uniwersalne znaki z podstawowego zestawu liter z alfabetu... Pytanie: jak przerobić tą funkcję na bardziej uniwersalną? Jest ona dobra dla polskich znakow, ale co z innymi? RObię dajmy na to stronę dla Francuzów, a oni mają te swoje porypane akcenty, do tego kodowanie iso-8859-1. Jak sprytnie przekonwertować taką nazwę na zakres podstawowych liter alfabetu A-Z i a-z oraz 1-9 bez żadnych dodatkowych literek, zamieniajac wszystkie spoza tego zakresu na znak podkreslenia: _ ![]() Podejrzewam, że możnaby użyć wyrażeń regularnych ale nie mam pojęcia jak... Jeśli ktoś ma jakiś pomysł/gotowy skrypt/dobrą radę to bardzo proszę o pomoc ![]() Przenoszę: Skrypty php -> php / crashu -------------------- Webcoder
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 742 Pomógł: 0 Dołączył: 14.12.2003 Skąd: Gdańsk, Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Coś wg. mnie uniwersalniejszego:
Dobra, świetny jestem, to samo zrobi:
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 23.10.2003 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Ok, zainspirowany odpowiedziami (za które dziękuję
![]() ![]() Rozwiązanie które proponujecie działa pięknie, ale zamienia wszystkie "dziwne" litery na znak podkreslenia. A chodzi o to zeby na przyklad "ą" zamienić na "a" itp. Tak więc wrzucam poprawioną funkcję:
Dla powyższego kodu wynikiem będzie:
Jak widać polskie literki są zamieniane na podstawowe znaki z alfabetu, a wszystkie inne spoza zakrezu a-zA-Z1-9 są zamieniane na znak podkreslenia. Zaszla potrzeba rozdzielenia nazwy pliku od rozszerzenia - zrobilem explode() po kropce, pojawia się tylko pytanie: co jeśli w nazwie występuje więcej niż jedna kropka? Dla nazwa.doc.zip nazwa wynikową bedzie nazwa.doc, co jest już błędem... Jakieś pomysły co z tym fantem zrobić? Ten post edytował Birkoff 14.07.2005, 11:13:55 -------------------- Webcoder
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zaszla potrzeba rozdzielenia nazwy pliku od rozszerzenia - zrobilem explode() po kropce, pojawia się tylko pytanie: co jeśli w nazwie występuje więcej niż jedna kropka?
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 04:04 |