Jump to content
Sign in to follow this  
dima669

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

Recommended Posts

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

 

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

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

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

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

 

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

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

 

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

 

Спасибо !

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

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) 

Share this post


Link to post
Share on other sites

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

 

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

cyrlat.php

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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", 
" "=> "_"
);

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.