[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 メーリングリストの案内