CodeIgniter и кодировка utf-8. Работа с текстом в кодировке utf-8
Недавно делал проект на CodeIgniter. Пришлось столкнутся с весьма неожиданной проблемой – в настройках была опция кодировки сайта – но она не работала, и CodeIgniter полагался на настройки сервера при отображении текста. Пришлось это дело исправлять.
Способов много, я напишу о трех:
1. Самый правильный на мое мнение способ – использование хуков. Это позволит хранить название кодировки сайта в файле настроек. Для этого нужно:
- в файле настроек config.php включить хуки
$config['enable_hooks'] = TRUE;
- в файле хуков создать новый
$hook['pre_controller'] = array( 'class' => 'pageEncoding', 'function' => 'headerUTF8', 'filename' => 'pageEncoding.php', 'filepath' => 'hooks', 'params' => array() );
- создать файл pageEncoding.php в папке hooks со следующим содержанием:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class pageEncoding extends CI_Hooks { function headerUTF8($params) { $CFG =& load_class('Config', 'core'); header('Content-type: text/html; charset=' . $CFG->item('charset')); } }
Все. Должно работать хорошо.
2. Прописать настройки в файл .htaccess корня сайта
AddDefaultCharset UTF-8
но этот способ очень плохой и при переносе на другой хостинг может перестать работать.
3. Жестко прописать кодировку в файле index.php.
header('Content-type: text/html; charset=utf-8' );
Минус этого – заголовок независим от настроек сайта.
REPLY))
Огромное спасибо!! Помог вариант с хуками, а то при переносе на другой хостинг были одни кракозябры))
REPLY))
Большое спасибо. Пока только изучаю php, denwer…. Помогло с index.php
REPLY))
рекомендую делать с помощью хуков, с index.php это быстрый вариант, но правильней будет хуками
REPLY))
Мегаспасибо за хуки!!!
REPLY))
[...] Два других способа более сложны, но лучше. Опубликованно 22.06.2013 автором Ghost. Рубрика: IT тэги: codeigniter, framework, PHP, программирование. Добавить в закладки: постоянная ссылка. « Простые видеоуроки Codeigniter (PHP) /* [...]
REPLY))
Спасибо большое. Сначала в созданном файле в папке хуков закрыл php код, не заработало, но потом оставил как рекомендуется. и все хорошо. также пришлось в phpdesigner поменять кодировку всех файлов видов.