ru.BIR.ru

Pahan-Hubbitus private forum
Текущее время: Ср авг 22, 2018 8:19 am

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Пт окт 12, 2007 7:47 pm 
Не в сети
Site Admin

Зарегистрирован: Ср сен 06, 2006 10:36 pm
Сообщения: 309
Уже тясячи раз эти темы обсуждались, и снова на них напарываешься.

Переносил тут сайты с одного сервера на выделенный. Н что я могу сказать, похоже сайты писали школьники. В каждом файле где нужен коннект имеются строки:

Код:
include "config.php";
$link = mysql_connect( $dbparam_server , $dbparam_login , $dbparam_password ) or die ("Not connected to DB!");
mysql_select_db( $dbparam_database, $link) or die ("Not select DB!");


Сдается мне, взятые из учебника типа "Первые шаги PHP+MySQL, учимся делать WEB-сайты за 24 часа", да так и копипастятся с тех пор...

В общем, суть втом, что естественно в современном мире, дефолтную кодировку на сервере ставить вольмибитную, да еще и виндовую CP1251, в которой работал этот сайт, совершенно не хочется, да и не кошерно это, не правильно. На сервере utf8.

Первым порывом было конечно просто вписать стандартное:
$res = mysql_query('SET NAMES cp1251', $link);
после коннекта.

И даже уже собирался во всех файлах это заменить... НО как-то все-таки это не хорошо, то что пишу я, то пишу я, то что делают дургие - другие пусть и делают. И тут даже не в том дело что не хочу помочь, или еще чего такое, просто не стоит вмешиваться в труд других, без ведома авторов, и крайней на то необходимости, тем более по всему проекту.
Ну и второе, чем осложнялась ситуация - сайт переносился с работающего, и в общем-то посещаемого ресурса, потому хотелось сделать все наиболее прозрачно, а раз домен бьудет обновляться не один час, то настраивался удаленный доступ в БД, ну и синхронизация файлов последством rsync, которая по сути и сводилась на нет, еслключением толпы файлов.


Тогда была предприната попытка поиска другого, не менее "правильного" решения. Очень хотелось либо настроек в my.cnf для клиента php, ну скажем в добавок к стандартного [client] еще [php_client] (ну а действительно, для ПЕРЛового DBI есть, а чем ПХП хуже-то???) Такового способа не нашлось, сколько я не искал.
Дальше подумалось что можно было бы в php.ini (а лучше .htaccess) добавить директивы вроде:
Код:
mysql.default_charset
, ну в добавок к уже имеющимся и нормально работающим mysql.default_port, mysql.default_host, mysql.default_user и другим.
Я кстати был не одинок в такимх поисках и нуждах, вот примеры http://bugs.php.net/bug.php?id=28356&thanks=3 , http://www.thescripts.com/forum/thread160072.html ну и подобные.

В общем, было решено-таки написать такой патч. Ну и естественно, захотелось чтобы "все и сразу", чтобы уже у пользователя была возможность выбирать (а как же, привыкли все к этому в мире *NIX и Open Source, а от хорошего отвыкать не хочется).

Ну и был написан собственно патч, реализующий все эти возмодности, и добавляющий в конфиг к ПХП 2 новые директивы для расшинения ext/mysql:
Код:
mysql.default_charset
mysql.read_default_group


Думаю названия и так говорят сами за себя.

Соотсветственно сам патч прилагается. Должен подойти поидее для всех версий PHP, как я понимаю ext/mysql давно не менялось. Но тестировалось на php-5.2.4

Для федоры, для себя, конечно же упаковал это все в итоговый rpm, бинарные (i386) и src.rpm которые можно взять здесь: http://hubbitus.org.ru/rpm/php/

Ну и Патч тоже есть в ВЕБ (но может и пропасть по этому адресу, ничего не обещаю): http://hubbitus.org.ru/rpm/php/php-5.2. ... s.patch.gz

Да, и после того как я жуе по сути все сделал, в сети было найдено еще несколько "подобных" патчей, по отдельности. Например характерно вот это обсуждение http://www.mail-archive.com/internals@l ... 22760.html


Вложения:
Комментарий к файлу: Main Patch
php-5.2.4-mysql_config_charsets.patch.gz [1.1 КБ]
Скачиваний: 475

_________________
Если у Вас есть все что Вы хотите - значит Вы мало хотите!
Пожаловаться на это сообщение
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.035s | 12 Queries | GZIP : On ]