Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Samba] Problem ze zmianą nazwy katalogu zawierającego polskie znaki
Forum PHP.pl > Forum > PHP
Kamil Rybczyński
Witam,

wdrożyłem Sambę do zarządzania plikami na dwóch serwerach Windows 2008.
Jeden serwer zarządza plikami, znajdującymi się na drugim serwerze, poprzez Sambę 3.0.23c uruchomioną przez Cygwin.
Generalnie wszystko działa za wyjątkiem zmian w plikach i katalogach zawierających polskie znaki.

Plik smb.conf zawiera obecnie:
Kod
dos charset = CP852
unix charset = UTF-8
display charset = UTF-8


Testowałem jednak chyba już wszystkie opcje, tj. dos charset = CP852, CP850, ISO8859-2, UTF-8, Windows-1252
To samo z unix charset, ponieważ serwer lokalny też jest Windowsowy.

Zmiany katalogów i plików bez polskich znaków, działają w 100%.

Działa także zmiana nazw, gdy komendę rename uruchamiam przez konsolę - cmd.
Problem jest gdy komenda uruchamiana jest przez skrypt php za pomocą funkcji proc_open()

Moim zdaniem problem leży po stronie php, inaczej z linii poleceń również nie dałoby się nic zrobić.
Tylko gdzie szukać przyczyny? Może w funkcji proc_open() da się zadeklarować charset?
Niestety niczego takiego nie znalazłem w Manualu.

Z góry dziękuję za pomoc.
Pyton_000
Sprawdź kodowanie pliku PHP
Kamil Rybczyński
Wszystkie pliki php kodowane są w UTF-8.
Czy powinno być inne?
kreatiff
PHP + Windows i pliki z ogonkami = Houston mamy problem.
Ja nie poradziłem sobie z tym, a chodziło mi o głupie wczytywanie pliku przez file_get_contents. Musiałem zmieniać nazwy plików by mi poszło.

Nie szperałem dokładnie, ale z tego co wyczytałem to jest problem PHP na Windowskie. Trzeba czekać na PHP6.
Pyton_000
Cytat(kreatiff @ 11.09.2014, 20:10:02 ) *
Trzeba czekać na PHP6.

Kolega nie w temacie wink.gif Nie będzie 6 wink.gif
kreatiff
Hehe, czy dobrze wyczytałem, że od razu 7 wyjdzie? biggrin.gif
Grunt by w końcu uporała się z tym całym ogonkowym galimatiasem wink.gif
Kamil Rybczyński
Wracając do wątku.
Niestety nie ogarnąłem poprawnego kodowania pomiędzy dwoma serwerami na Windows 2008.
Mam taką możliwość (kilka serwerów w firmie), więc odpaliłem aplikację php na Fedorze, jedna linijka kodu (yum install) i działa od strzału.

Gdyby jednak ktoś upierał się do zorganizowania tematu Samba Windows => Windows, zmianę nazw katalogów i plików,
zrealizowałbym poprzez skrypt sh. Aby zainstalować Sambę na Windzie, i tak musimy mieć Cygwin'a,
zatem czemu nie skorzystać z jego komend, w tym przypadku sh.

Dodałem plik sh, który zawierał komendy Samby i poprzez php odpalałem go z odpowiednimi parametrami.
Nastepnie plik sh uruchamiał komendę smbclient, do komunikacji via Samba.

Jest to idiotycznie skomplikowana procedura, ale na tą chwilę jedyna jaka była w stanie zmieniać nazwy polskojęzycznych plików i katalogów.
Pyton_000
eee... a nie możesz użyć konsoli Windows ?
Kamil Rybczyński
W konsoli cmd wywoływanej ręcznie wszystko śmigało, ale w konsoli odpalanej przez proc_open() w php był ten sam problem,
co w samym smbclient, tj. nie rozpoznanie nazwy katalogu, jeśli zawierał polskie znaki.

Ewidentnie środowisko Linuxowe lepiej sobie radzi z tym zagadnieniem.
Myślę, że jest to jakaś nieprawidłowość po stronie php uruchomionego w środowisku Windows.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.