Кириллический названия картинок на хостинге.

#16 9 августа 2016 в 14:14
  1.  
  2. <?php
  3. echo '<ul style="list-style:none; margin:0; padding:0">';
  4. mysql_connect("localhost", "ttt", "ttt") or die (mysql_error ());
  5. mysql_query("SET NAMES 'utf8'");
  6. mysql_query("SET CHARACTER SET 'utf8'");
  7. mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
  8. $strSQL = "SELECT COUNT(*) AS cnt, p.country, p.region, u.is_deleted, u.is_locked
  9. FROM cms_users u
  10. INNER JOIN cms_user_profiles p ON p.user_id = u.id
  11. WHERE p.country != '0' AND p.country != '' AND u.is_deleted = 0 AND is_locked = 0
  12. GROUP BY country
  13. ORDER BY country ASC;";
  14. $rs = mysql_query($strSQL);
  15. while($row = mysql_fetch_array($rs)) {
  16. echo '<li style="height:25px; line-height:25px; font-size:12px; border-bottom: 1px dotted silver; margin:4px; display:inline-block; width:220px; overflow:hidden"><a style="background:url(/flags/16/'.$row['country'].'.png)left no-repeat; padding-left:20px; width:100%; height:100%; box-sizing:border-box; cursor:pointer; display:block;" href="/geosearch.html?country='.$row['country'].'">'.$row['country'].' <small style="color:silver;">'.$row['cnt'].'</small></a>
  17. </li>';
  18. }
  19. echo '</ul>';
  20. ?>
  21.  
  22.  
#17 9 августа 2016 в 14:32
Всё дело в безкавычии — background:url(/flags/16/'.$row['country'].'.png)
надо как-то так
  1. background:url("/flags/16/'.$row['country'].'.png")
двоечник, кто делает пути с пробелом без кавычек
#18 9 августа 2016 в 14:44

надо как-то так

Loadырь
так совсем пропали флаги и там где они были. hoho

двоечник

Loadырь
хуже, а куда деваться, приходится как то жить с этим) думаете, мне легко?)
#19 9 августа 2016 в 14:49

так совсем пропали флаги и там где они были

Нил™
я говорил

надо как-то так

Loadырь
В вашем коде надо смотреть и скорее всего экранировать кавычки.
  1. background:url(\'/flags/16/'.$row['country'].'.png\')
глядя на это создаётся впечатление, что акк Нила™ кто-то из двоечников хакнул laugh
#20 9 августа 2016 в 17:18
  1. var_dump($row['country'])
, что выводит? Хотя сначала попробуйте вместо
  1. $row['country'] trim($row['country'] )
#21 9 августа 2016 в 19:01
Уважаемый Нил™ !
У Вас ошибка синтаксиса в фрагменте кода
  1. echo '<li style="height:25px; line-height:25px; font-size:12px; border-bottom: 1px dotted silver; margin:4px; display:inline-block; width:220px; overflow:hidden"><a style="background:url(/flags/16/'.$row['country'].'.png)left no-repeat; padding-left:20px; width:100%; height:100%; box-sizing:border-box; cursor:pointer; display:block;" href="/geosearch.html?country='.$row['country'].'">'.$row['country'].' <small style="color:silver;">'.$row['cnt'].'</small></a>
  2. </li>';
Вот так этот кусочек читать удобно и ошибку в парности двойных кавычек сразу видно.:
  1.  
  2. $l= '<li style="height:25px; line-height:25px; font-size:12px; border-bottom: 1px dotted silver; margin:4px; display:inline-block; width:220px; overflow:hidden;">';
  3. $l .='<a style="background:url('.$row['country'].')left no-repeat; padding-left:20px; width:100%; height:100%; box-sizing:border-box; cursor:pointer; display:block; "';
  4. $l .= 'href="/geosearch.html?country='.$row['country'].' ">'.$row['country'].'<small style="color:silver;">'.$row['cnt'].'</small></a>';
  5. $l .='</li>';
  6. echo $l;
  7.  
#22 9 августа 2016 в 19:32

ошибку в парности двойных кавычек сразу видно

Геннадий Иванович
кому видно, а кому нет smileвроде закрыты все кавычки.
подсчитал в notepad " — 8 штук. Парно hoho

что выводит? Хотя сначала попробуйте вместо

Lora
посмотрю по позже, сейчас мы с яндексом yandex.ru/promo/manul/ ищем вирусы на сайте. долго сканируется, всерьёз взялся.

Вообще конечно думал о том, что можно в названиях из двух слов вырезать пробелы что бы получалось Южная_Корея.png и файлы соответственно переименовать, но тут тоже хотелось бы выяснить)
#23 9 августа 2016 в 19:42
Про кавычки это к примеру. Вы так и не захотели прочитать Ваш код заново.
У Вас overflow:hidden а не overflow:hidden;
#24 10 августа 2016 в 13:03

Код PHP:
var_dump($row['country'])
, что выводит?

Lora
string(33) "Багамские острова"

trim($row['country'] )

Lora
ничего не даёт.

Что интересно. Если выводить картинку не в качестве фона, а в качестве изображения вставленного тегом <img src=
то выводится флаг и Багамские острова.png и Армения.png
а если изображение флага помещать в background: url()
то Армения.png — да, Багамские острова.png нет)
#25 10 августа 2016 в 13:03

Вас overflow:hidden а не overflow:hidden;

Геннадий Иванович
Спасибо, поправил)
#26 10 августа 2016 в 18:28

string(33) "Багамские острова"

Нил™
Точно так? Смотрите везде где можно.В строке "Багамские острова" нет 33-х символов.
#27 10 августа 2016 в 18:49

В строке "Багамские острова" нет 33-х символов.

Lora
Есть 33 байта кодировки символов.
Уважаемый Lora! Почему их больше ровно в два раза, читайте в документации.
Для кириллицы все правильно.
  1. var_dump(array('абвгд'));
  1. array(1) { [0]=> string(10) "абвгд" }
i.voenmeh.ru/kafi5/Kam.loc/inform/UTF-8.htm
#28 10 августа 2016 в 18:53

Точно так? Смотрите везде где можно.В строке "Багамские острова" нет 33-х символов.

Lora
смотря в какой кодировке читать))

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.