Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Пути к файлу и работа с ним
 
 автор: SJol   (04.12.2007 в 09:25)   письмо автору
 
 

Имеем следующий код:

<?
  $filename 
dirname(__FILE__)."\\users_pict\\user".$user_id.".jpg";
  if(
is_file($filename))
    print 
"<img src=$filename>";
?>

В данном варианте функция is_file возвращает TRUE, но картинка не вставляется.
Если при формировании имени файла убрать функцию dirname(__FILE__), то is_file
возвращает FALSE, но картинка будет выводится (если конечно if убрать).
Почему так и как с этим побороться? Формировать два имени файла? Но это как-то некрасиво.
И еще вопрос. Если расширение файла неизвестно, то как его узнать, учитавая, что имя файла уникально?

   
 
 автор: Trianon (в гостях)   (04.12.2007 в 11:37)
 
   для: SJol   (04.12.2007 в 09:25)
 

>Но это как-то некрасиво.

Это не так.

   
 
 автор: Zirkon   (04.12.2007 в 12:29)   письмо автору
 
   для: SJol   (04.12.2007 в 09:25)
 

В своем примере выведи на экран $filename и поймешь, почему в картинку он не вставляется. :)

И что означает "расширение файла не известно"... а оно вообще есть? Т.е. файл записан типа image.jpg или просто image?

   
 
 автор: SJol   (04.12.2007 в 13:25)   письмо автору
 
   для: Zirkon   (04.12.2007 в 12:29)
 

Вывел на экран:

$filename1 = dirname(__FILE__)."\\users_pict\\user".$user_id.".jpg"; 
 $filename1 = C:\Site\users_pict\user4.jpg
$filename2 = "\\users_pict\\user".$user_id.".jpg";
 $filename2 = \users_pict\user4.jpg

is_file работает только с filename1, а filename2 не видит. А <img ..> наоборот. Почему так?

По расширению: чтобы сформировать $filename надо знать расширение. Т.е. файл может быть
user4.jpg, user4.png, user4.bmp .... Как выход перебирать всю директорию и искать нужный файл.
Или еще как-то можно решить данную ситуацию?

   
 
 автор: Trianon (в гостях)   (04.12.2007 в 13:38)
 
   для: SJol   (04.12.2007 в 13:25)
 

Откуда у Вас взялись в пути обратные слеши?

   
 
 автор: SJol   (04.12.2007 в 14:15)   письмо автору
 
   для: Trianon (в гостях)   (04.12.2007 в 13:38)
 

>Откуда у Вас взялись в пути обратные слеши?
Сишная привычка.
Спасибо разобрался. Но остался какой-то осадок недопонимания.
Почему <img> воспринимает пути:
users_pict\user4.jpg
\users_pict\user4.jpg
users_pict/user4.jpg

Но не может понять
C:\Site\users_pict\user4.jpg

   
 
 автор: sim5   (04.12.2007 в 14:18)   письмо автору
 
   для: SJol   (04.12.2007 в 14:15)
 

Зачем вообще вам абсолютные пути?

   
 
 автор: SJol   (04.12.2007 в 14:50)   письмо автору
 
   для: sim5   (04.12.2007 в 14:18)
 

Да пока ни к чему. Учимся мы. Вот и пробую разные варианты.
А по определению расширения имени файла никаких мыслей нет?

   
 
 автор: sim5   (04.12.2007 в 14:58)   письмо автору
 
   для: SJol   (04.12.2007 в 14:50)
 

Ну тогда и забудьте об абсолютном пути, а слеши в Unix это /. Тип файла изображения можно узнать функцией getimagesize(), указав в качестве праметра файл.

   
 
 автор: Trianon   (04.12.2007 в 23:29)   письмо автору
 
   для: sim5   (04.12.2007 в 14:58)
 

В unix - дело десятое. Что куда важнее - в синтаксисе URI

   
 
 автор: mihdan   (05.12.2007 в 12:44)   письмо автору
 
   для: SJol   (04.12.2007 в 09:25)
 

file_exists(file);

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования