Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: В РНР 7 глюки такого типа?
 
 автор: Владимир55   (05.02.2016 в 19:10)   письмо автору
 
 

Для пробы перевел сайт на РНР7.

Первая неожиданность:
$fio  = htmlspecialchars($fio);

выдаёт пусто, если в переменной кириллица (кодировка 1251).

Это похоже на глюк, присущий седьмой версии?

Такого типа нюансов в ней много?

  Ответить  
 
 автор: cheops   (06.02.2016 в 08:19)   письмо автору
 
   для: Владимир55   (05.02.2016 в 19:10)
 

А с какой версии переходите? Это не глюк 7 версии, это бардак последних версий PHP. Сначала в htmlspecialchars() нужно было указывать кодировку явно, причем нельзя было настроить на уровне php.ini по умолчанию, а по умолчанию была какая-то ISO-оная кодировка, потом переделали на UTF-8 по умолчанию. Начиная с 5.6 это можно настроить кодировку по умолчанию через php.ini, но по умолчанию она UTF-8. С однобайтовыми кодировками функция не работает, и не только она. Это ньюанс даже не PHP 7, а версий после 5.3.

  Ответить  
 
 автор: Владимир55   (06.02.2016 в 14:10)   письмо автору
 
   для: cheops   (06.02.2016 в 08:19)
 

А с какой версии переходите?

В моем архиве на компе был старый простенький сайт, сделанный в 2011 году, который уже не используется. И я для пробы новой версии РНР зарегил домен и разместил сайт на хостинге.

По умолчанию на хостинге версия РНР 5.2 и все автоматически заработало, как и должно было быть.

Но когда установил версию РНР7, то перестала вводиться инфа в форму. Может, и еще что-нибудь, но я пока что на этом остановился.

Стало ясно, что надо очень подумать прежде, чем пытаться переводить на семерку основной сайт.

Нюанс в том, что ведь этим дело не кончится. И вслед за семеркой выйдет ещё какая-нибудь иная версия и опять всё с начала...


С однобайтовыми кодировками функция не работает, и не только она.

Может быть, лучше вообще забыть про 1251 и в дальнейшем использовать только UTF? Будет меньше проблем в перспективе?

  Ответить  
 
 автор: cheops   (06.02.2016 в 23:35)   письмо автору
 
   для: Владимир55   (06.02.2016 в 14:10)
 

Да, 1251 используется только на старых проектах, если есть возможность, в новых проектах следует ориентироваться исключительно на UTF-8.

  Ответить  
 
 автор: Sfinks   (07.02.2016 в 20:26)   письмо автору
 
   для: Владимир55   (06.02.2016 в 14:10)
 

Для любой версии есть список обратной несовместимости.
Миграция с пхп 5.6 на пхп 7
Внизу есть ссылки для миграции со всех пхп 5.х

  Ответить  
 
 автор: Sfinks   (07.02.2016 в 20:29)   письмо автору
 
   для: Владимир55   (06.02.2016 в 14:10)
 

> Может быть, лучше вообще забыть про 1251 и в дальнейшем использовать только UTF? Будет меньше проблем в перспективе?
На самом деле все давно забыли в новых проектах. Но перевести старый сайт на UTF-8.... Ну я не скажу, что это проблема.... Но сил и средств потратить придется.

  Ответить  
 
 автор: Владимир55   (07.02.2016 в 22:56)   письмо автору
 
   для: Sfinks   (07.02.2016 в 20:29)
 

На самом деле все давно забыли в новых проектах.

Так база заметно больше...

  Ответить  
 
 автор: Sfinks   (09.02.2016 в 21:15)   письмо автору
 
   для: Владимир55   (07.02.2016 в 22:56)
 

примерно в 2 раза..... Железо (что жесткий диск, что оперативка) сейчас на много дешевле времени разработчика и того геморроя, с которым приходится сталкиваться при использовании других кодировок.
Если конечно у вас в БД самая активная таблица 50 Гб и посещаемость пол миллиона хитов в сутки - да, наверно стоит задуматься о том, что для того чтоб ее запихнуть в оперативку и сайт не тормозил, надо в 2 раза больше оперативки. Но разве это так?

  Ответить  
 
 автор: Владимир55   (10.02.2016 в 00:13)   письмо автору
 
   для: Sfinks   (09.02.2016 в 21:15)
 

Но разве это так?

Нет, конечно!

Хотя есть у меня одна таблица на 75Гб, купленная у разработчика, который использовал УТФ-8. Ради неё пришлось ВДС брать, а если бы она была вдвое меньше, то можно было бы и хостингом обойтись.

А вообще я ничего нового делать не планирую, но если случится, то, конечно же, 1251 использовать не стану, ибо накоплено много фрагментов кода в кодировке УТФ-8.

А в целом я с Вами согласен.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования