Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nazwy plików z dziwnymi znakami
lzur
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Probowales tego

http://php.net/manual/en/function.escapeshellcmd.php
?
Go to the top of the page
+Quote Post
lzur
post
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
Go to the top of the page
+Quote Post
LowiczakPL
post
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
Go to the top of the page
+Quote Post
lzur
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.01.2013
Skąd: Dzierżoniów

Ostrzeżenie: (0%)
-----


Cytat(LowiczakPL @ 20.04.2018, 21:57:16 ) *
stworzyłem ten twój plik z dziwnymi znakami i odpaliłem skrypt i działa bez problemu

Czy masz spację wewnątrz nazwy pliku ?


Udało się. Właściwa funkcja nazywa się escapeshellarg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:15