![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 24.01.2013 Skąd: Dzierżoniów Ostrzeżenie: (0%) ![]() ![]() |
Mam taki skrypt:
foreach (new DirectoryIterator('.') as $file) { if($file->isDot()) continue; $filename = $file->getFilename(); echo system("stat $filename");. } Skrypt uruchamia komendę stat (to oczywiście tylko przykład) dla każdego pliku obecnego w katalogu. Skrypt działa ale problemy pojawiają się jak na przykład w katalogu jest plik o nazwie `~!@#$%^&*()-=_+[]\{}|;':",.<>?.txt Oczywiście chodzi o zacytowanie tych dziwnych znaków i właściwe przesłanie ich jako parametr. Jak poprawić ten mój skrypt ? System operacyjny linux. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 24.01.2013 Skąd: Dzierżoniów Ostrzeżenie: (0%) ![]() ![]() |
Jednak nie działa zawsze.
wstawiłem linijkę: echo system("stat ".escapeshellcmd($filename)); i ona działa dla przykładu nazwy pliku, który podałem. Jednak jak w nazwie pliku znajdzie się dodatkowo spacja to niestaty nie działa. Przykładowo dla pliku o nazwie `~!@#$%^&*()-=_+[]\{}|;':",.< >?.txt dostawiona spacja pomiędzy <> dostaję komunikat: stat: cannot stat '`~!@#$%^&*()-=_+[]\{}|;'\'':",.<': No such file or directory stat: cannot stat '>?.txt': No such file or directory Ten post edytował lzur 20.04.2018, 16:00:33 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
stworzyłem ten twój plik z dziwnymi znakami i odpaliłem skrypt i działa bez problemu
Ten post edytował LowiczakPL 20.04.2018, 20:58:26 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 24.01.2013 Skąd: Dzierżoniów Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:15 |