PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
vgo
Отправлено: 10 Декабря, 2015 - 17:06:16
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Преамбула.
У меня есть сервер (Centos, Apache, php 5.4). Были кое-какие проблемы с php и я сегодня залил аналогичный сервер, но с php 5.6.16.

Есть тестовая страничка в кодировке Win-1251.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//RU">
  2. <html>
  3. <head>
  4. <title>Главная страница</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  6. </head>
  7. <body>
  8. <center>
  9.    Миру мир
  10. </center>
  11. </body>
  12. </html>


На обоих серверах она записана дважды: как a.html и a.php.
Беда в том, что на старом сервере она открывается в обоих вариантах правильно, тогда как на новом a.html открывается нормально, тогда как в a.php все русские буквы заменились на вопросы в ромбиках.

Честно гуглю уже несколько часов. Ничего не нашел.

Что я пропустил в настройках php?

PS. Пожалуйста, не объясняйте мне, что cp1251 - это прошлый век и всем надо работать в utf-8!
 
 Top
esterio
Отправлено: 10 Декабря, 2015 - 18:04:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 5021
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




PHP:
скопировать код в буфер обмена
  1. header("Content-type: text/html; charset=cp1251");
 
 Top
vgo
Отправлено: 10 Декабря, 2015 - 18:13:33
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




esterio пишет:
PHP:
скопировать код в буфер обмена
  1. header("Content-type: text/html; charset=cp1251");


Да, спасибо, это помогло.
Однако на 5.4 работало и без этого.

Вероятно, где-то была сделана какая-то настройка, выполняющая ту же функцию, что и этот оператор.
Я бы хотел знать, где эта настройка.

Хотя старый сервер заливал тоже я, с тех пор прошло много времени и я не могу вспомнить все, что делал.
(Добавление)
Я еще раз сделал сервер с php 5.4. Кроме установки самого php, все делалось строго одинаково.
На php 5.4 a.php отображается нормально. На 5.6 - нет. Никаких специальных настроек не делалось, видимо, это различие в самом php.
php 5.4.45 ставился по http://vgdnet[dot]ru/centos_update_php/ из [remi]
php 5.6 ставится так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
  2. yum install php56w php56w-opcache


Я не в курсе различий между этими источниками, но, вероятно, они есть.
Поскольку новая версия никак не помогла мне решить мою проблему с php, я остаюсь на 5.4.45.

Извините за беспокойство. Хотя мне по-прежнему интересно, помогает ли тут какая-то настройка, практического значения для меня этот вопрос больше не имеет.
 
 Top
Sail
Отправлено: 11 Декабря, 2015 - 08:52:26
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




vgo пишет:
Хотя мне по-прежнему интересно, помогает ли тут какая-то настройка

Вот: default-charset
Спойлер (Отобразить)
 
 Top
vgo
Отправлено: 11 Декабря, 2015 - 11:51:23
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Sail пишет:
vgo пишет:
Хотя мне по-прежнему интересно, помогает ли тут какая-то настройка

Вот: default-charset


Спасибо, но должен заметить, что в обоих вариантах (5.4 и 5.6) там прописано UTF-8. Но один показывает правильно, а второй - нет.

Поэкспериментировал еще. Да, правка default-charset действительно помогает. При этом, несмотря на то, что в 5.6 есть еще настройки для input-charset, internal-charset, output-charset, требуется именно default, прописывание windows-1251 в остальные, даже во все сразу, не помогает.

Но - см. выше.

Видимо, дело не в настройках, а в другом поведении php. Вроде как обещали, что все вне тегов <?php ?> должно передаваться на выход без изменения? Значит, в 5.6 это уже не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Кодировки и все смежное »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB