|
|
|
| Имеем следующий код:
<?
$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)
| | >Но это как-то некрасиво.
Это не так. | |
|
|
|
|
|
|
|
для: SJol
(04.12.2007 в 09:25)
| | В своем примере выведи на экран $filename и поймешь, почему в картинку он не вставляется. :)
И что означает "расширение файла не известно"... а оно вообще есть? Т.е. файл записан типа image.jpg или просто image? | |
|
|
|
|
|
|
|
для: 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)
| | Откуда у Вас взялись в пути обратные слеши? | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: SJol
(04.12.2007 в 14:15)
| | Зачем вообще вам абсолютные пути? | |
|
|
|
|
|
|
|
для: sim5
(04.12.2007 в 14:18)
| | Да пока ни к чему. Учимся мы. Вот и пробую разные варианты.
А по определению расширения имени файла никаких мыслей нет? | |
|
|
|
|
|
|
|
для: SJol
(04.12.2007 в 14:50)
| | Ну тогда и забудьте об абсолютном пути, а слеши в Unix это /. Тип файла изображения можно узнать функцией getimagesize(), указав в качестве праметра файл. | |
|
|
|
|
|
|
|
для: sim5
(04.12.2007 в 14:58)
| | В unix - дело десятое. Что куда важнее - в синтаксисе URI | |
|
|
|
|
|
|
|
для: SJol
(04.12.2007 в 09:25)
| | file_exists(file); | |
|
|
|