За последние 24 часа нас посетили 54307 программистов и 1720 роботов. Сейчас ищут 1206 программистов ...

не работают файловые функции

Тема в разделе "Вопросы от блондинок", создана пользователем pluto, 20 окт 2009.

  1. pluto

    pluto Активный пользователь

    С нами с:
    9 дек 2007
    Сообщения:
    28
    Симпатии:
    0
    Не могу прочитать параметры некоторых файлов, т.е. файловые функции filetype filesize stat и др. не работают.

    Делаю так.


    Код (Text):
    1.  
    2. $dir = "/tmp";
    3. $dh  = opendir($dir);
    4. while (false !== ($filename = readdir($dh))) {
    5.    $file['name'] = $filename;
    6.    $file['type'] = filetype($filename);
    7.    $file['size'] = filesize($filename);
    8.    $files[] = $file;
    9. }
    тип и размер файлов для некоторых файлов не определился. Потом решил воспользоватся file_exist, оказалось функция не находит некоторые файлы которые существуют и выводятся с помощью кода приведённого выше.

    Кто сталкивался, помогите плиз.
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Попробуйте использовать абсолютные пути, а не относительные.
    $dir = dirname(__FILE__)."/tmp";

    И еще:
    (false !== ($filename = readdir($dh)))
    Быстро разобрали, как работает?
     
  3. pluto

    pluto Активный пользователь

    С нами с:
    9 дек 2007
    Сообщения:
    28
    Симпатии:
    0
    Только некоторые файлы не находятся с помощью file_exist is_file stat filetype и др., скорее всего те которые были закачены не так давно. Абсолютные пути не помогли результат тот же. Что же это такое
     
  4. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    может просто это не файлы, а каталоги
     
  5. pluto

    pluto Активный пользователь

    С нами с:
    9 дек 2007
    Сообщения:
    28
    Симпатии:
    0
    Некоторые файлы и некоторые папки.

    Если сделать так

    Код (Text):
    1.  
    2. $dir = "/myfolder/";
    3. $dh  = opendir($dir);
    4. while (false !== ($filename = readdir($dh))) {
    5.   if (file_exists($filename)) {
    6.      $file['name'] = $filename;
    7.      $file['type'] = filetype($filename);
    8.      $file['size'] = filesize($filename);
    9.      $files[] = $file;
    10.   }
    11. }
    То выведутся не все файлы и папки, т.е. file_exists не находит файлы.

    В мануале написано

    Результаты этой функции кэшируются. См. детали в clearstatcache().

    Но как применить эту функцию правильно? Может надо изменить какие то настройки хостинга?
     
  6. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    file_exists странная функция, если ей скормить путь не до файла, а каталога она сгенерит ошубку, я юзаю is_file
     
  7. pluto

    pluto Активный пользователь

    С нами с:
    9 дек 2007
    Сообщения:
    28
    Симпатии:
    0
    Попробовал с ней, вывелись только файлы, но не все. Почему не все, не ясно :(
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Бгг. А как определяем все или не все файлы вывелись?

    Hint: пользователь apache может не иметь тех прав, что есть у обычного пользователя.
     
  9. pluto

    pluto Активный пользователь

    С нами с:
    9 дек 2007
    Сообщения:
    28
    Симпатии:
    0
    код для php4 который написан выше выводит все файлы но функции определения типа размера и т.д. срабатывают не для всех файлов, в т.ч. file_exists.

    Всем спасибо, дело действительно было в путях. Но почему всё же для некоторых файлов функции отрабатывали
     
  10. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Ето мене? Правда я хайт, но ладно. Что правда права могут отличаться o_O не может быть. Мне опять в детский сад идти? =)
     
  11. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Я конечно могу допустить опечатку, но не настолько же :)
     
  12. pluto

    pluto Активный пользователь

    С нами с:
    9 дек 2007
    Сообщения:
    28
    Симпатии:
    0
    Кстати __FILE__ работает в php4? Это вообще как правильно называется? ))
     
  13. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Проверь, это константа, значение которой имя исполняемого пхп-файла.
    А я могу =)
     
  14. pluto

    pluto Активный пользователь

    С нами с:
    9 дек 2007
    Сообщения:
    28
    Симпатии:
    0
    Хех. Как звучит "Магические константы"

    Константа это идентификатор (имя) для простого значения. Как следует из названия, это значение не может изменяться в процессе исполнения скрипта. ('Магические константы' __FILE__ и __LINE__ являются исключением из этого правила, но они в действительности не являются константами.)
     
  15. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Hight
    Давай в контру рубанем!
     
  16. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Kreker
    Я играю, прям щас, с пивком и сырком

    пиши

    connect cs.su29.ru:27018
     
  17. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    я Chupa+
     
  18. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Hight
    Что за карта и что за плагины качаются?
     
  19. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    зомбимод =)
     
  20. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    блин) 3 года не играл, хотел на норм картах побегать...
     
  21. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    мапа меняется... зомби мод это сила =)
     
  22. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Дофига качать чего-то. В общем, если что, я здесь 89.20.147.142:27015
     
  23. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    слишком жёстко, устал быстро =(
     
  24. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    где сейчас? Они стали ставить мясо какое-то
     
  25. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Девушку тебе надо, а лучше 2 )