[PHP-users 33523] Re: php4.3.2でSJIS-winに統一したい
tatsuya matsuyama
tatsuya @ kk-okamoto.jp
2008年 5月 12日 (月) 15:15:29 JST
松山です。
# すみません、件名を空欄で送ってしまいました...
ちょっと補足です。
----- Original Message -----
> そして、現在、質問当時のコンテンツを
> RedHat7.3J + php-4.2.3-multibyte.tar.gzの環境を
> RedHatES3+php-4.3.2(rpm版?)へ
> 移すテストを行っています。
RedHatES3+php4.3.2から
Windows2003server+SQLserver2000へ
msslq_関数を使ってアクセスして表示テストをしています。
例えば、下記のようなコードでテンプレートファイル(sjis)に情報を書き込んでいま
す。
この時、SQLserverからの漢字を含む戻り値(sjis-win)がEUCに変換されて(?)
表示されています。
php.iniの該当箇所の設定は下記の通りです。
output_buffering=On
output_handler=mb_output_handler
default_charset = sjis
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = SJIS-win
mbstring.http_input = auto
mbstring.http_output = SJIS-win
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = no value
■テストコード
<?php
// このプログラムは、
// データベース「group」からデータを抽出します。
// login.html
//
/
// 以下はSQLserverから参照される内容です
//
// login.htmlではCenterDBはセンターのみ表示
if(ereg("login.html", $file))
{
// login.htmlの場合
//
switch($Center_flag)
{
case "1";
//
default;
//
$sql = "select * from group_list
order by group_code;";
break;
}
} else {
// login.html以外の場合
$sql ="select * from group_list order by group_code;";
}
$result = mssql_query($sql, $dbHandle);
$resultNumRows = mssql_num_rows($result);
$tmpl->loopset("group");
for ($i=0; $i<$resultNumRows; $i++)
{
$data = mssql_fetch_object($result);
$group_name = $data->group_name;
$gr_code = $data->group_code;
// 選択されたgroup_codeセット
if($group_code==$gr_code)
{
$group_selected = "selected";
} else {
$group_selected = "";
}
$tmpl->assign("group_code", $gr_code);
$tmpl->assign("group_name", $group_name);
$tmpl->assign("group_selected", $group_selected);
$tmpl->loopnext();
}
?>
PHP-users メーリングリストの案内