Выполнение команды ls в PHP

Модератор: Модераторы разделов

Аватара пользователя
sidd
Сообщения: 667
ОС: Slackware 13.37

Выполнение команды ls в PHP

Сообщение sidd »

Когда я в PHP с помощью функции exec выполняю команду ls, получаю результат вроде этого:
-rw-r--r-- 1 sidd users 1.8G Jun 29 23:32 Dead Man.avi
-rw-r--r-- 1 sidd users 634M Nov 2 2007 From Dusk Till Down.avi
-rw-r--r-- 1 sidd users 1.4G Apr 20 13:57 Gangs of New York.avi
-rw-r--r-- 1 sidd users 1.4G Jun 30 22:40 Goodfellas.avi

Но он почему-то выглядит немного не так, как в обычном терминале с запущенным bash'ем. Вот аналогичный результат этой же конманды из терминала:
-rw-r--r-- 1 sidd users 1.8G 2009-06-29 23:32 Dead Man.avi
-rw-r--r-- 1 sidd users 634M 2007-11-02 19:49 From Dusk Till Down.avi
-rw-r--r-- 1 sidd users 1.4G 2009-04-20 13:57 Gangs of New York.avi
-rw-r--r-- 1 sidd users 1.4G 2009-06-30 22:40 Goodfellas.avi

Форматы дат отличаются. А мне нужно, чтоб было именно как во втором варианте. Кто-нибудь знает, как добиться этого?
Patrick is God.
Спасибо сказали:
pcodr
Сообщения: 283
ОС: Debian

Re: Выполнение команды ls в PHP

Сообщение pcodr »

Попробуйте ls --full-time
remote system type is unix
Спасибо сказали:
Аватара пользователя
sidd
Сообщения: 667
ОС: Slackware 13.37

Re: Выполнение команды ls в PHP

Сообщение sidd »

pcodr, спасибо :)
Patrick is God.
Спасибо сказали:
Аватара пользователя
oxd
Сообщения: 165

Re: Выполнение команды ls в PHP

Сообщение oxd »

интересно. а скрипт откуда запускается?
Товарищ стой! Сожми покрепче маузер!
Не дай предателю мимо пройти!
Он променял консоль на браузер.
Таким не место в сфере IT!
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Выполнение команды ls в PHP

Сообщение sergio »

sidd писал(а):
18.07.2009 06:18
Когда я в PHP с помощью функции exec выполняю команду ls, получаю результат вроде этого:
-rw-r--r-- 1 sidd users 1.8G Jun 29 23:32 Dead Man.avi

Но он почему-то выглядит немного не так, как в обычном терминале с запущенным bash'ем. Вот аналогичный результат этой же конманды из терминала:
-rw-r--r-- 1 sidd users 1.8G 2009-06-29 23:32 Dead Man.avi

Форматы дат отличаются. А мне нужно, чтоб было именно как во втором варианте. Кто-нибудь знает, как добиться этого?


Сделайте в терме
$ LC_ALL=C ls
и получите тот же результат, что из-под пхп.
Результаты разные потому, что локаль у вас стоит и баш ее учитывает есессно. В пхп локали тоже переключались как будто. Но в вашем случае полагаю правильнее --фул-тайм.

Код: Выделить всё

$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=


Про --full-time вам сказали. Правда, там немножко свой формат, сильно full. :)
А вообще-то в пхп и функции для работы с файлами есть. :)
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали: