Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> file_exist не видит существующий файл, Я просто в полном замешательстве 
V
    Опции темы
kaa
  Дата 3.3.2007, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: -1
Всего: 2



Есть код:

Код

while($m_array = mysql_fetch_row($res))
            {
                echo "del file ../".$m_array[0];
                if(!file_exists("../".$m_array[0])) echo "no";
                                                echo "<img src=../'".$m_array[0]."'>";
            }


Так вот, file_exists выдаёт что файла нет, а вслед за этим нормально выводится рисунок!!!
Во вторых, когда я вместо переменной забиваю путь файда вручную - file_exists говарит что файл есть и нормально выводится рисунок.

Притом когда подставляю путь из массива - выводится в UTF-8, а когда забиваю в ручную - в cp1251. но это ака мне кажется детали.

У кого какие-нить мнения есть по этому поводу?
Я  до сих пор в сети копаюсь - ничего найти немогу почему да отчего...

Это сообщение отредактировал(а) kaa - 4.3.2007, 10:34
PM MAIL   Вверх
Alex13
Дата 4.3.2007, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 30.12.2005
Где: Новосибирск

Репутация: нет
Всего: 1



попробуй вместо 
Код

!file_exists("../".$m_array[0])

Код

!file_exists("../'".$m_array[0]."'");


Еще советую учесть, что значения параметров тегов стоит брать в кавычки.
А так же просто сверь имена, что в базе с именами, что выводятся и проверяются и с реальными.
Помимо всего прочего неплохо бы научиться правильно оформлять код и проверить лабуду с кавычками.


--------------------
Самая страшная ошибка - это ошибка, не имеющая явных причин и конкретных последствий.
Антисоциальный блог.
PM WWW ICQ Jabber   Вверх
GZep
Дата 4.3.2007, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



kaa, пользуйтесь тегами "код"!
Вохможно используется rewrite. То есть подмена путей. Например, скрипт находится в корне, хотя и вызывается как находящийся в папке.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
kaa
Дата 4.3.2007, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: -1
Всего: 2



GZep, Извиняюсь - уже исправил.

А как этот rewrite отключить/отследить? А почему он не происходит когла я путь забиваю полностью вручную?
PM MAIL   Вверх
GZep
Дата 4.3.2007, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Просто, используете ли вы файл .htaccess? Если нет, или не знаете что это такое, то rewrite у вас врядли стоит.

Попробуйте, вот так:
Код

echo _FILE_;

Должен показать путь к файлу php. Мне все-таки кажется, что тут что-то с путями не так.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
kaa
Дата 4.3.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: -1
Всего: 2



не, .htccess не пользую

А код выводит '_FILE_'...

З.Ы.: А почему когда я путь ручками вбиваю то всё впорядке?

Это сообщение отредактировал(а) kaa - 4.3.2007, 14:29
PM MAIL   Вверх
GZep
Дата 4.3.2007, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Что вы вбиваете именно и что вбивает скрипт?

Отличается ли то, что вы вбиваете и:
Код

echo "../".$m_array[0];

 smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
S.A.P.
Дата 4.3.2007, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 3
Всего: 71



Код

echo realpath("../".$m_array[0]);
 посмотри что даёт.


PM MAIL   Вверх
kaa
Дата 4.3.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: -1
Всего: 2



GZep, Я вбиваю: 

Код

'../images/ware_img/GU4R4YYl3zeJBNQgnxae/Доска-для-элемента-фона.png'


В массиве все тоже самое...
Правда есть один маленький ньюансик - когда я вбиваю вручную. то всё корректно отображается в win-1251, когда подставляю из массива то для корректного отображения нужно выбрать кодировку просмотра UTF-8.



S.A.P.

как ни странно - ничего...  smile 

Кароче я савсем уже запутался.  smile 
PM MAIL   Вверх
GZep
Дата 5.3.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Попробуйте:
Код

while($m_array = mysql_fetch_row($res))
            {
                echo "del file ../".$m_array[0];
                if(!file_exists("../" . urlencode($m_array[0]))) echo "no";
                                                echo "<img src=\"../" . urlencode($m_array[0]) . "\">";
            }



--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Powerhead
Дата 5.3.2007, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 7.11.2006

Репутация: 1
Всего: 2



kaa, это только с кириличными именами файлов происходит? Я бы советовал от них отказаться для сохранения портирования кода.
Полагаю, что имя файла хранится в базе в утф, а файловая система утф не понимает.
Можно попробовать конвертнуть имя файла 

Код

$path = '../';
while($m_array = mysql_fetch_row($res)) {

    $name = iconv("UTF-8", "CP1251", $m_array[0]);
    $file = $path.$name;
    
    print "File: '$file'<br />";
    if(file_exists($file)) {
        print "Exists<br />";
    }
    else {
        print "No<br />";
    }
    
    print "<img src='$file' /><br />";
            
}


http://ua2.php.net/manual/ru/function.iconv.php

Это сообщение отредактировал(а) Powerhead - 5.3.2007, 19:37
PM MAIL WWW ICQ   Вверх
kaa
Дата 5.3.2007, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: -1
Всего: 2



Powerhead
Пробовал, не помогает... Нет, не только с кирилическими - со всеми smile
PM MAIL   Вверх
Glip
Дата 6.3.2007, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 7
Всего: 18



http://ru.php.net/manual/en/function.file-exists.php
цитата оттуда:
Цитата

Note: The results of this function are cached. See clearstatcache() for more details.


может быть поможет?

хотя все странно это.

Это сообщение отредактировал(а) Glip - 6.3.2007, 00:19


--------------------
user posted image
PM MAIL   Вверх
kaa
Дата 6.3.2007, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: -1
Всего: 2



Powerhead, Дико извиняюсь, я вас обманул... Толькочто еще баг выловил... В общем да, неработает только с русскими - приходится конвертировать в cp1251. ТОлько вот незадача - у меня в базе всё хранится в cp1251 и 

Код

SET NAMES cp1251;


я выполняю сразу после подключения к БД.
Кстати, отчего система не поддерживает UTF-8?! Ведь клиенту всё идет именно в этой кодировке - по другому ведь кирилицу не передашь.
PM MAIL   Вверх
GZep
Дата 7.3.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Почему не передашь?


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1191 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.