PDA

Просмотр полной версии : невидимый файл


Илья К
01.07.2005, 22:42
Всем приветы!
Написал небольшой фотоальбом. Функция проверяет папку на наличие в ней файлов, а затем, отобрав из них картинки, создает массив с именами. Далее записывает их столбиком и делает ссылки, где href состоит из двух частей: названия папки (передается через url) и названия папки (берется из массива). Так строится навигация в пределах папки.
При обнаружении подпапки проверяет ее и ее подпапки... Так строится навигация по папкам.

Только вот проблема: скрипт выдает ошибки, если натыкается на скрытые/системные файлы, например, Thumbs.db. Чего я еще не понимаю -- этот Thumbs.db я вижу в ftp-клиенте (FileZilla), а в винде (в том числе и при настройке "отображать скрытые и системные файлы") нет...

В чем тут может быть дело?
Спасибо.

ЗЫ Да, ошибки такие:

Notice: Undefined offset: 45 in z:\home\khanataev\www\photos\gallery.php on line 113
Notice: Undefined offset: 45 in z:\home\khanataev\www\photos\gallery.php on line 113
Notice: Undefined index: in z:\home\khanataev\www\photos\gallery.php on line 126

...приаттачиваю на всякий случай скрипт, но смотреть вряд ли имеет смысл -- я по неопытности написал его так, что кроме меня его, думаю, все равно никто не поймет...

Crazy
01.07.2005, 23:01
is_readable()

Илья К
02.07.2005, 00:14
is_readable() не помогает.

if(is_readable($_REQUEST['path']."/".$dirphotos_namesArray[$i]))
{
$dirphotos[$dirphotos_namesArray[$i]]=$dirphotos_datesArray[$i];
echo "$i ".$dirphotos[$dirphotos_namesArray[$i]]." => ".$dirphotos_datesArray[$i]."<br>\n";
}

У "нормальных" файлов echo такое:
...
39 07-02-2005 19:36:28 => 07-02-2005 19:36:28
40 07-02-2005 19:39:56 => 07-02-2005 19:39:56
41 07-02-2005 19:40:28 => 07-02-2005 19:40:28
42 07-02-2005 19:41:04 => 07-02-2005 19:41:04
43 07-02-2005 19:41:34 => 07-02-2005 19:41:34
44 07-02-2005 19:42:20 => 07-02-2005 19:42:20

Дойдя до проблеммного файла, программа выдает:

Notice: Undefined offset: 45 in z:\home\khanataev\www\photos\gallery.php on line 113
Notice: Undefined offset: 45 in z:\home\khanataev\www\photos\gallery.php on line 115
Notice: Undefined offset: 45 in z:\home\khanataev\www\photos\gallery.php on line 115
Notice: Undefined offset: 45 in z:\home\khanataev\www\photos\gallery.php on line 116
Notice: Undefined offset: 45 in z:\home\khanataev\www\photos\gallery.php on line 116
45 =>
Notice: Undefined index: in z:\home\khanataev\www\photos\gallery.php on line 129

Если я правильно понимаю, это означает, что файл все же readable...

Nirva
02.07.2005, 05:59
exif_imagetype() ? он вроде не генерирует ворнинг, если файл не является графикой.

Crazy
02.07.2005, 09:39
is_readable() не помогает.


Это значит, что ты гонишь про "скрытые/системные файлы". Ошибка -- в твоем коде, заполняющем массив.

Илья К
02.07.2005, 17:35
Хорошо, гоню, только факт в том, что во всех папках, где нет файла Thumbs.db, скрипт работает нормально.

Crazy
02.07.2005, 18:02
прекрасно. что мешает исключить этот конкретный файл из обработки, если уж тебе лень искать плюху в месте, где ты заполняешь массив?

Илья К
02.07.2005, 19:06
Мешает примерно то же, что мешает подобрать где-нибудь готовый скрипт или пользоваться Денвером вместо того, чтобы долбаться с Apache. Плюху же в коде искать не лень, просто не нашел самостоятельно и обратился к форуму -- по-моему, пока еще по закону не преследуется.
ОК, тогда такой вопрос, если кто знает: почему в фтп-клиенте видно файлы, которые не отображаются в виндос-эксплорере и что это за особенные файлы? Думаю, может тут проблема...

Crazy
02.07.2005, 20:45
Мешает примерно то же, что мешает подобрать где-нибудь готовый скрипт или пользоваться Денвером вместо того, чтобы долбаться с Apache.

Please, еще раз и медленно: у тебя проблемы с вставкой в код единственного оператора if? Это ТВОЙ код?

Плюху же в коде искать не лень, просто не нашел самостоятельно и обратился к форуму -- по-моему, пока еще по закону не преследуется.

И тебе дали ответ: ошибка в коде, который заполняет массив. Но этот код ты не показываешь. И чего, в таком случае, ты от нас ждешь? Ярких проявлений телепатии? :)

ОК, тогда такой вопрос, если кто знает: почему в фтп-клиенте видно файлы, которые не отображаются в виндос-эксплорере и что это за особенные файлы?

Ответ: его так сделали. Альтернативные ответы -- "этого требует Тора", "программа, в имени которой есть слово ftp, не должна читать файлы с именем Thumbs.db", "файл Thumbs.db проклят вудуистскими шаманами" -- являются неверными.

Думаю, может тут проблема...

Есть мнение, что проблема более материалистического характера: все ОСТАЛЬНЫЕ файлы в этом каталоге -- картинки? Так?

Илья К
02.07.2005, 21:22
Please, еще раз и медленно: у тебя проблемы с вставкой в код единственного оператора if? Это ТВОЙ код?Ответ: нет.

И тебе дали ответ: ошибка в коде, который заполняет массив. Но этот код ты не показываешь. И чего, в таком случае, ты от нас ждешь? Ярких проявлений телепатии? :)Ответ: нет, не "ярких проявлений телепатии", а элементарной внимательности (все файлы были приаттачены еще к первому сообщению). ;)

Ответ: его так сделали.Ответ для юзера, довольствующегося знанием на уровне "где у персонального компьютера находится кнопочка пауер"... Не похоже на тебя...

[...] все ОСТАЛЬНЫЕ файлы в этом каталоге -- картинки? Так?Ответ: да и, думаю, я знаю, куда ты клонишь... Бум разбираться. :)

Crazy
03.07.2005, 00:30
все файлы были приаттачены еще к первому сообщению). ;)


слона-то я и не приметил... а так -- все очевидно. если ты посмотришь на строки 65 и 72, то должно стать очевидно, что ты заполняешь массив, оставляя в нем дыры. а читаешь его потом подряд. включая то, что никогда в него не заносил.

-MS-
03.07.2005, 01:57
Что такое Thumbs.db:
Данный файл создается автоматически, когда вы в окне виндовского эксплорера выбиратете вид папки "Как эскизы страниц". Виндовс индексирует файлы в этой папке (не только картинки) и запихивает в него превьюшки. При следующем просмотре этой папки в таком режиме снова индексировать файлы, типа, не надо.

Илья К
03.07.2005, 23:58
слона-то я и не приметил... а так -- все очевидно. если ты посмотришь на строки 65 и 72, то должно стать очевидно, что ты заполняешь массив, оставляя в нем дыры. а читаешь его потом подряд. включая то, что никогда в него не заносил.Да, думаю, ты прав. Что ж, наверное, придется переписывать весь скрипт целиком; все равно он так запутан, что лучше один раз написать нормально и разбить на логические куски, чем надстраивать и запутывать еще больше. :)


Что такое Thumbs.db:[...]Только неясно, почему... Ну, в общем, этот вопрос я уже пару раз задавал... :)


Всем большое спасибо! :)

Crazy
04.07.2005, 20:42
Только неясно, почему...

Потому, что его расширение -- не jpg. См. строки 65 и 72.

Илья К
05.07.2005, 04:13
Потому, что его расширение -- не jpg. См. строки 65 и 72.Нет, ты меня сейчас неправильно понял. С 65 и 72 все ясно. Я имел в виду вопрос, к ПХП в общем-то не относящийся, а именно, почему я не вижу в видосовском эксплорере файл, который виден в фтп-клиенте...

Crazy
05.07.2005, 07:19
почему я не вижу в видосовском эксплорере файл

Потому, что он Hidden и System.

Илья К
05.07.2005, 12:31
слушай, я, наверное, чего-то не понимаю... есть опции отображения папки. одна из них -- это оторажать/скрывать скрытые файлы. я поставил флажок на "отображать"... или это что-то другое?..

Constantine
05.07.2005, 12:34
а что тут понимать - оно и есть... это сразу после установки винды надо включать ;)
Только, например, в 2000 отдельно надо включать скрытые и системные...