• ベストアンサー

文字化けで混乱中です...

こんにちは。PHPの文字化けで混乱しており、どなたかにご助言いただければ幸いです。 現在、PHPは拡張子「.php」、HTMLは拡張子「.html」で動いているものを 拡張子「.html」でもPHPを動作させたいので、.htaccessにて AddType "application/x-httpd-php; charset=Shift_JIS" .php .html と指定しました。 これで拡張子「.html」でもPHPが動かせるようになりましたが、それとともにPHPスクリプトの入っていない他のHTMLファイルが文字化けしてしまうようになりました。 しかし、.htaccessに AddType "application/x-httpd-php; charset=Shift_JIS" .php .html AddType "text/html; charset=Shift_JIS" .html こうしてしまうとPHPが効かなくなるし...うーん?と 多分スゴイ手前のところで混乱してきてしまいました。 HTMLファイル内ではmetaでShift-JISを設定しています。 HTMLファイル内でheaderとかやらない方法で、文字化けを回避する方法をお教えいただけますと助かります。 よろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

(php_flag mbstring.encoding_transration Off) (php_value mbstring.http_input pass) php_value mbstring.http_otput SJIS php_value mbstring.internal_encoding SJIS あたりで設定しておいて、PHPはソース内で ini_set('mbstring.http_otput', 'xxx'); ini_set('mbstring.internal_encoding', 'xxx'); としてはどうでしょう。

参考URL:
http://jp.php.net/manual/ja/ref.mbstring.php

その他の回答 (1)

  • emriv
  • ベストアンサー率83% (5/6)
回答No.2

charsetの指定をはずしてみてください。 AddType application/x-httpd-php .php .html のみでも動作可能です。

関連するQ&A

  • .htaccessでAddTypeを並べることは禁

    .htaccessでAddTypeを並べることは禁止されているのでしょうか? 現在、海外のサーバーを利用しています。 文字化けがひどいので、.htaccess内に ---------------------- AddType "text/html; charset=Shift_JIS" .html ---------------------- と記述して利用していました。 今回新たに、htmlファイルでphpを動作させたいと思い、次のような記述を追加しました。 ---------------------- AddType "text/html; charset=Shift_JIS" .html AddType application/x-httpd-php .php .html ---------------------- どちらか一行であれば、phpも動作しますし、文字化けも起こりません。 いろいろと調べてみましたが、ギブアップです。 AddTypeを重ねることが禁止の場合、どのように書き直せば良いか、ご教授頂ければと思います。

  • PHP、,htaccessの文字コードの設定について

    ホームページのフッターのテキストが、全ページ共通なので、PHPを使って管理したいと思っています。 ●htmlファイルにincludeを使って、footer.php(共通テキストをprint指定してあるファイル)を読み込みます。  <?php include "footer.php";?> ●php拡張子設定の為、.htaccess内に、  AddType application/x-httpd-php .htm と記述。 ●htmlファイル、footer.php、.htaccessを全て文字コードEUCで作成してテストしたところ無事認識され成功しました。 が、テストページ以外のhtmlファイルは全SHIFT-JISで構築しているため、文字化けを起してしまいます。 ので、htmlファイル、footer.php、.htaccessを全て文字コードSHIFT-JISで作成してみましたが、それこそ文字化けをしてしまいます。 .htaccessにAddType application/x-httpd-php .htmを記述しなければ文字化けは起こさないのですが、もちろんphp拡張子の設定がなっていたいので、動作しません。 一体どうすればよいでしょうか? PHP初心者です。 どなたか教えて下さい。よろしくお願いします。 説明不十分でしたら申し訳ございません。

    • ベストアンサー
    • PHP
  • 携帯サイト作成する場合の.htaccess処理で困っています。

    携帯サイト(XHTML+CSS)の作成方法を勉強している最中で.htaccessファイルを作成していたのですがうまく動かない部分がありますのでお手数ですが対応方法をお教え頂けますでしょうか。 .htaccessでapplication/xhtml+xmlの情報を送り、さらにPHPファイルをhtmlの拡張子で動作できればと思い、いろいろなサイトの情報を集めて下記内容を作成しアップロードしたところ、Content-Typeがapplication/xhtml+xmlにならずにtext/htmlのままPHPプログラムが動作しました。(AddTypeを無視しているようです) [.htaccess] AddHandler x-httpd-php442 .php .html AddType "application/xhtml+xml; charset=Shift_JIS" .html AddHandlerの".html"を消すと今度はContent-Typeがapplication/xhtml+xmlになりますがPHPが動作しなくなります。 AddHandler x-httpd-php442 .php .htmlの1行を.htaccessに記述し、 HTMLファイル内に<?=header("Content-type: application/xhtml+xml");?>を入力すれば表示されるのですが、できれば.htaccess一つで済めばと思います、、、。 サーバーはKDDIウェブコミュニケーションズ(CPI)のX10プランを使用しています。このサーバーは注意事項として"弊社サーバーでは .htaccessファイルにてphp_valueおよびphp_flag はご利用いただけません"との文言がありました。(※php.iniの修正は可能のようです) 良い書き方があればお教え頂ければ幸いです。 何卒宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • .htaccessの中身が 動かない

    拡張子htmlファイルをphpファイルと認識させる為に、 .htaccessで AddType application/x-httpd-php .html AddHandler x-httpd-php .html と書いて対応していました。 ファストサーバーのキガント2です。 HTMLが入ってるフォルダと同じ場所に.htaccessを入れて見ましたが、 php5 DSO版版もCGI版もだめでした。 何か分かる方いらっしゃいましたら、宜しくお願い致します。

    • 締切済み
    • PHP
  • 文字化けを修正する方法

    dreamweaverMXでホームページを作っています。 最近、文字コードをcharset=Shift_JISからcharset=UTF-8に変更したら文字化けが起きてしまい、修正する方法がわからず困っています。 具体的には、テンプレートファイルで文字コードをcharset=Shift_JISからcharset=UTF-8に変更し、更新をかけました。 テンプレートファイルは文字化けしていませんが、更新した他のhtmlファイルはすべて文字化けしてしまっています。 CSSファイルにもちゃんと@charset "utf-8";と記入してあります。原因がわかりません。 どうすればよいのでしょうか?

    • ベストアンサー
    • HTML
  • Apache2.2での文字化けが直せません

    Apache2.2.15をインストールし、「独習PHP」に従って設定をしたのですが、日本語が文字化けします。 httpd.confで変更したのは以下の部分です。 LoadModule php5_module "c:/php/php5apache2_2.dll" Addtype application/x-httpd-php .php (AddDefaultCharsetは、調べてみた所2.2系から使われてないらしいので、追加していません) php.iniの設定も間違いなく行いました。 また、<head>内に<meta http-equiv="Content-Type" content="text/html; charset=euc">などと埋め込んだりしてもだめでした。 どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPファイルをHTMLの拡張子のまま表示させる

    PHPファイルのページを拡張子がHTMLのままで表示させたいのですが、 .htaccessで設定すると、ブラウザではダウンロードされてしまいます。 ファイルの配置やソースで間違っている所はありますか? フォルダ index.html .htaccess ソース(.htaccess) AddType application/x-httpd-php .htm .html サーバ さくらインターネット

    • 締切済み
    • PHP
  • [HTML-PHP]あるPHPファイルだけ文字化け

    お世話になります。 XP/PHP5.2.9/Apache2.2.11 の環境で、簡単なシステムを作っているのですが、その際に PHP側で header( "Content-Type: text/html;charset=shift_jis"); HTML側で <meta http-equiv="content-type" content="text/html; charset=shift_jis"> と明示的にSJISにしているのですが、実際にローカルで確認すると文字化けしてしまうPHPファイルがあります。(1ファイルのみ) 他のPHPファイルは同様のヘッダー情報を送信していますが、文字化けせずに画面出力されています。 HTML-PHP初心者のため、補足等必要になるとは思いますが、どうぞご教授下さい。

    • ベストアンサー
    • PHP
  • ApacheにてHTML・PHPファイルが文字化けします

    現在、業務の関係でHTML・PHPファイルをブラウザで表示させているのですが、あるファイル(HTML・PHP両方とも)のみ文字化けをおこしてしまうのです。 OS:TurboLinuxServer6.1 Webサーバ:Apache1.3.26 ブラウザ:Netscape4 PHP:PHP3.0.18 HTML・PHPファイルの上には「charset=Shift_JIS」と、すべてのファイルに記述しています。 PHPのiniファイル内の「i18~」もShift_JISに統一しています。 Apacheのhttpd.confの設定も行なったのですが、効果がありませんでした。 ちなみに、HTML・PHPファイルはWin→Linuxにコピーするとき、秀丸でファイル形式を「EUC(改行=lf)」で保存しました。(こうしないと、改行に変な文字がついてしまうので) gooで検索をかけたところ、ファイルのパーティションを705にかえる方法がありましたが、それも関係あるのでしょうか? なにか、よきアドバイスがあればお願いいたします。

    • ベストアンサー
    • HTML
  • .htaccessの中身が php5 CGI版で動かない

    拡張子htmlファイルをphpファイルと認識させる為に、 .htaccessで AddType application/x-httpd-php .html AddHandler x-httpd-php .html と書いて対応していました。 今まではサーバーのphpのバージョンがPHP4(DSO版)だったのですが、昨日サーバーのバージョンがPHP5(CGI版)になってから、上記のような.htaccessが機能しなくなってしまいました。 order deny,allow deny from all ↑ これはちゃんと動くので、.htaccess自体が拒否されてるみたいなことはないと思います。 AddType application/x-httpd-php .html AddHandler x-httpd-php .html ↑ このプログラムがPHP5 CGI版にて意図した動作とならないのです。 何か分かる方いらっしゃいましたら、宜しくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう