Перейти к содержанию
dima669

Русские имена изображения и file_exist

Рекомендуемые сообщения

Здравствуйте, помогите пожалуйста.

 

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

А там файлы картинок содержат русские буквы.

В результате движку не удается создать мини-изображения потому что перед этим он функцией file_exist проверяет наличие основного изображения - и определяет что его нет.

В результате сайт остается совсем без картинок, только некоторые проскакивают у которых в названиях нет русских букв.

 

Много чего пробовал, но ничего не получилось.

Главное на сервере - все нормально, а на локальном не работает.

 

Что делать то!?? :)

 

Спасибо !

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

называть картинки латиницей всегда !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

часто спасаюсь этим 

встречаюсь с таким, когда занимаюсь доработкой или редизайном сайтов заказчиков не понимающих что : 

называть картинки латиницей всегда !

просто необходимо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сайт не мой - тоже немного надо доработать....

 

Спасибо большое!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

часто спасаюсь этим

 

Pascha, что интересно в этом скрипте в самом начале опять стоит file_exist:

foreach ($results_a as $result_at) {
      if ($result_at['image'] && file_exists(DIR_IMAGE . $result_at['image'])) {
		 

И опять же не пропускает далее, т.е. все продукту пролетают мимо, названия ни в базе, ни в файлах не меняются:

 

__________file NOT found______data/Tovar/Andywatch/AW 010/AW 010 - Город (2).JPG __pid=(78) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

этот попробуй

 

не забудь после переименования очистить кэш картинок

cyrlat.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Штук 50 переименовались, а остальные также file_exist не пропускает. А товаров около 1000.

 

Спасибо, Pascha, жаль что карма отключена, буду дальше копать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ты один раз прогонял? есть вероятность что за один проход не переименует

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Несколько раз. В отладчике смотрел - не пропускает file_exists и всё тут, ничего не поделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

странно...я переименовывал с помощью этого файла не меньшее количество товара...движок один и тот же....может дело в хосте самом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
file_exists -- Проверка наличие указанного файла или каталога

 

не более того...

 

как на данный момент на хосте отображаются названия картинок? на кирилице или крокозябрами?

 

дело в том, что если картинки перенесены были с "кракозябрами" в названии...то естественно переименования не произойдет, так как 

$tr = array(
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
"Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I",
"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
"У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
"Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"",
"Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
"ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya", 
" "=> "_"
);

то есть замена на латиницу происходит только при наличии кирилических знаком, перекодированные названия естественно переименовываться не будут

 

как вариант: если при переносе на локалку названия перекодированы в "кракозябры" вместо кирилицы, то: переименование нужно произвести сначала на сайте- оригинале (где все папки и названия картинок прочитываются кирилическими символами(например, при просмотре через ФТП))...и только после этого снова делать дамп сайта и переносить на локалку

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И на хосте и на локальном русские названия выглядят нормально, без кракозябр.

 

может дело в хосте самом?

имеешь ввиду что проблема может быть в настройках сервера?

Тогда скорее всего моего локального, ведь проблемы у меня.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, временно на локальном сервере сделал так.

 

В файле catalog/model/image.php везде где появлялись проблемы, менял кодировку файла или директории так:

iconv('UTF-8', 'windows-1251', $filename)

Вместо $filename были также $path,$old_image,$new_image

 

Не лучший конечно вариант, но временно сойдет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.