
環境:RedHat8/apache2/php4.3.1
私のもっているPHPの本に、
php.iniでmbstring.http_output = SJISを指定した
場合、画像データが壊れる場合があると記述されている
ので実際に試して見たのですが、テキストも画像も問題
なく表示されました。
予想では、画像データの0Aが0D0Aに自動変換されると
思ったのですが、画像データに変換された形跡はあり
ませんでした。
【質問1】
画像が壊れないのは、PHP4.3.1で画像データを変換しない
様に対応したのでしょうか?
【質問2】
私の予想が的外れで、違う壊れ方が発生するのでしょうか?
【質問3】
php.iniでmbstring.http_output = SJISを指定しても
画像データが壊れない方法があれば教えてください。
No.2ベストアンサー
- 回答日時:
> 「Content-Type: text/html」って、HTMLヘッダでの
> 指定の事でいいんでしょうか?
はい、そうです。
PHPでは特に指定しなければ「Content-Type: text/html」
がデフォルトになってますので、画像などを作成する場合は
明示的に
header("Content-Type: image/gif");
などと記述する必要があります。
> 画像が壊れる場合は、例えばEUCからS-JISへの文字コード
> 変換が、画像データにも適用されるから壊れると理解して
> 良いのでしょうか?(改行コード以外も変換する)
そうです。
Content-Typeが指定されていなければ、mb_internal_encoding()
<--->mb_http_output()間の漢字コード変換に "偶然" Matchして
しまう "場合がある" ため「壊れる場合がある」という
表現なのです。
No.1
- 回答日時:
【質問1】
PHP4.x.xのどこからかは忘れましたが、
Content-Type: text/html 以外を指定した場合、自動でhttp_output('pass');となるような仕様に変わりました。
そのため、画像など、image/gif等の場合は勝手に
http_output('pass');な状態(無変換な状態)になっています。
【質問2】
green-time21さんが言っているのは単なる改行コードの変換です。
PHPのmbstringはそういったもんではなく、mb_internal_encoding()をmb_http_output()
へ変換して出力する機能です。
従って、mbstringが稼動すると、バイナリーデータなどは変な変換結果になります。
ob_start()を使って出力時に強制的にmb_internal_encoding()からmb_http_output()へ変換して出力してみるとどんな壊れ方になるかわかります。
回答ありがとうございます。
「Content-Type: text/html」って、HTMLヘッダでの
指定の事でいいんでしょうか?
画像が壊れる場合は、例えばEUCからS-JISへの文字コード
変換が、画像データにも適用されるから壊れると理解して
良いのでしょうか?(改行コード以外も変換する)
ob_start()を使ってやって試したいのですが、ob_start()
が理解できないので、もっと勉強してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CPU・メモリ・マザーボード 壊れかけのHDDからデータ救出する方法 14 2023/06/11 12:07
- Android(アンドロイド) TIFF画像を表示できるAndroidアプリを探してます。 3 2022/05/16 09:00
- X(旧Twitter) ツィッターの画像表示について 1 2023/08/17 09:28
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- 写真・ビデオ 壊れたパソコンのデータ移行について 3 2023/06/04 18:06
- デジタルカメラ カメラ画素の意味について 3 2022/06/07 12:56
- フリーソフト 倍率自動調整して全画面表示できるフリーの画像ビューアー 1 2023/08/24 10:55
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- PHP 掲示板を作成しておりアップロードファイルとメッセージを並べたいので、アドバイスお願い致します 2 2023/07/17 21:01
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel vba で1と10を正確に判断...
-
ふりがなをアルファベット化す...
-
sedで日本語の置換方法について
-
漢字の振り仮名を取得したい
-
「彡」って文字はなんという文...
-
EBCDIC⇒SJIS変換の方法
-
ExcelVBA実行後に時々落ちる
-
std::stringからLPCWSTR型への変換
-
N88BASICのASCII変換について
-
JIS → S-JIS コード変換するには
-
%fと%gについて
-
文字列の最初の0(ゼロ)を取...
-
文字コード(EUC->SJIS)につい...
-
サーバから取得したdatetime型...
-
「平成」 をシフトJISの文字コ...
-
adobe acrobat reader 日本語表...
-
RubyでUTF8のコード値を文字に...
-
セル内の文字列が日本語か英語...
-
ASCIIコードの文字化け??
-
VB6.0のコードエディタでの改行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
「彡」って文字はなんという文...
-
ふりがなをアルファベット化す...
-
ExcelVBA実行後に時々落ちる
-
VS 2008(VB.NET)
-
COBOLによる全角・半角混...
-
数値のパック10進数の変換に...
-
Symfowareでのデータ型変換につ...
-
sedで日本語の置換方法について
-
2バイト文字をJEFからSJISに変...
-
フォームのコントロールのバッ...
-
JIS → S-JIS コード変換するには
-
英数字を含む文字列(0-9,A-Z)...
-
Excel vba で1と10を正確に判断...
-
Excelマクロにて30分単位の計算...
-
PL/SQLでSJISの文字コードを取...
-
S-JIS → JIS コード変換するには
-
%fと%gについて
おすすめ情報