Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как изменить кодировку всего сайта?
Форумы портала PHP.SU » » Вопросы новичков » Как изменить кодировку всего сайта?

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

1. darkside134 - 22 Марта, 2018 - 18:36:12 - перейти к сообщению
Необходимо изменить кодировку !всего сайта, а не отдельно взятых php файлов. Имеется скрипт сайта с кодировкой "windows-1251". Файлов много и каждый файл php, это отдельная страница. В файлы index.php вставил такой код вначале
CODE (htmlphp):
скопировать код в буфер обмена
  1. header('Content-Type: text/html; charset=windows-1251');

В базе тоже установил кодировку 1251.
Страница стала отображаться нормально, но проблема в том, что этих файлов много.
Подскажите, можно ли массово поменять кодировку всех файлов php?
Или может проще перейти на UTF-8?
Подскажите как правильно поступить в данном случае.
2. LIME - 22 Марта, 2018 - 22:39:45 - перейти к сообщению
darkside134 пишет:
Или может проще перейти на UTF-8?
не проще а необходимо
ajax работает только с utf-8
давно имел подобный гимор
darkside134 пишет:
Подскажите, можно ли массово поменять кодировку всех файлов php?
я это решал одноразовым скриптиком по перекодировке всех файлов рекурсивно
iconv
3. darkside134 - 22 Марта, 2018 - 23:26:28 - перейти к сообщению
LIME пишет:
darkside134 пишет:
Или может проще перейти на UTF-8?
не проще а необходимо
ajax работает только с utf-8
давно имел подобный гимор
darkside134 пишет:
Подскажите, можно ли массово поменять кодировку всех файлов php?
я это решал одноразовым скриптиком по перекодировке всех файлов рекурсивно
iconv
Погуглил по iconv, говорят часто ошибки с ним бывают, но я нуб в общем-то в пхп. Могли бы вы подробней описать что, куда?
Вот еще нашел функцию по теме, только как и куда её применить не врублюсь.
CODE (htmlphp):
скопировать код в буфер обмена
  1. function cp1251_to_utf8 ($txt)  {
  2.     $in_arr = array (
  3.         chr(208), chr(192), chr(193), chr(194),
  4.         chr(195), chr(196), chr(197), chr(168),
  5.         chr(198), chr(199), chr(200), chr(201),
  6.         chr(202), chr(203), chr(204), chr(205),
  7.         chr(206), chr(207), chr(209), chr(210),
  8.         chr(211), chr(212), chr(213), chr(214),
  9.         chr(215), chr(216), chr(217), chr(218),
  10.         chr(219), chr(220), chr(221), chr(222),
  11.         chr(223), chr(224), chr(225), chr(226),
  12.         chr(227), chr(228), chr(229), chr(184),
  13.         chr(230), chr(231), chr(232), chr(233),
  14.         chr(234), chr(235), chr(236), chr(237),
  15.         chr(238), chr(239), chr(240), chr(241),
  16.         chr(242), chr(243), chr(244), chr(245),
  17.         chr(246), chr(247), chr(248), chr(249),
  18.         chr(250), chr(251), chr(252), chr(253),
  19.         chr(254), chr(255)
  20.     );
  21.  
  22.     $out_arr = array (
  23.         chr(208).chr(160), chr(208).chr(144), chr(208).chr(145),
  24.         chr(208).chr(146), chr(208).chr(147), chr(208).chr(148),
  25.         chr(208).chr(149), chr(208).chr(129), chr(208).chr(150),
  26.         chr(208).chr(151), chr(208).chr(152), chr(208).chr(153),
  27.         chr(208).chr(154), chr(208).chr(155), chr(208).chr(156),
  28.         chr(208).chr(157), chr(208).chr(158), chr(208).chr(159),
  29.         chr(208).chr(161), chr(208).chr(162), chr(208).chr(163),
  30.         chr(208).chr(164), chr(208).chr(165), chr(208).chr(166),
  31.         chr(208).chr(167), chr(208).chr(168), chr(208).chr(169),
  32.         chr(208).chr(170), chr(208).chr(171), chr(208).chr(172),
  33.         chr(208).chr(173), chr(208).chr(174), chr(208).chr(175),
  34.         chr(208).chr(176), chr(208).chr(177), chr(208).chr(178),
  35.         chr(208).chr(179), chr(208).chr(180), chr(208).chr(181),
  36.         chr(209).chr(145), chr(208).chr(182), chr(208).chr(183),
  37.         chr(208).chr(184), chr(208).chr(185), chr(208).chr(186),
  38.         chr(208).chr(187), chr(208).chr(188), chr(208).chr(189),
  39.         chr(208).chr(190), chr(208).chr(191), chr(209).chr(128),
  40.         chr(209).chr(129), chr(209).chr(130), chr(209).chr(131),
  41.         chr(209).chr(132), chr(209).chr(133), chr(209).chr(134),
  42.         chr(209).chr(135), chr(209).chr(136), chr(209).chr(137),
  43.         chr(209).chr(138), chr(209).chr(139), chr(209).chr(140),
  44.         chr(209).chr(141), chr(209).chr(142), chr(209).chr(143)
  45.     );
  46.  
  47.     $txt = str_replace($in_arr,$out_arr,$txt);
  48.     return $txt;
  49. }
4. andrewkard - 25 Марта, 2018 - 07:24:24 - перейти к сообщению
Написать скрипт, который возьмет все файлы рекурсивно, и перекодирует их содержимое в utf8 или в ту, которая Вам нужна, и сохранит их.
В линукс есть команда:
Цитата:

find . -type f -name "*.php" -exec recode iso-8859-1..utf-8 '{}' \;

я не пробовал.

 

Powered by ExBB FM 1.0 RC1