[開発環境]
language : PHP Version 4.3.1
system : Windows NT localhost 5.1 build 2600(xp pro)
httpd : AN HTTP Daemon Version 1.42h
[本番環境](j-navi)
language : PHP Version 4.1.2
system : FreeBSD 4.5-RELEASE
httpd : apache_1.3.27

開発環境下で作成したスクリプトを本番環境に持っていくと、POSTされたデータが文字化けを起こします。$_POST[moji]で取得したデータをテキストファイルに吐き出す仕組みなんですが、どうもこの時点で既に文字化けを起こしているようなんです。文字化けを起こしたPOSTデータをテキストに吐くので、その後は文字化けを起こしたデータをそのまま読み出し綺麗にブラウザに表示します。
もちろん開発環境ではまったく問題なくスクリプトは動いています。

随分スクリプト自体は書けるようになってきたんですが、このあたりの設定といいましょうか、ダブルバイトの文字の扱いがよく理解できていません。
それゆえ、何の情報をお伝えすればよいのかも検討つきません。わかっているのは、文字化けをするそれだけなんです。

どうかヒントを下さい。アタリをつけることもできてないので本当に途方にくれています。よろしくお願いします。

Configure Command
'./configure' '--with-mysql=/usr/local/mysql' '--with-apache=../apache_1.3.27' '--enable-track-vars' '--enable-xslt' '--with-xslt-sablot' '--enable-mbstring' '--enable-mbstr-enc-trans'

magic_quotes_gpc on

http input encoding translation enabled

mbstring.detect_order no value
mbstring.http_input no value
mbstring.http_output no value
mbstring.internal_encoding no value
mbstring.substitute_character no value

このQ&Aに関連する最新のQ&A

A 回答 (2件)

$_POST[moji]


で受け取った時点で文字化けしているのであれば

送信フォーム側の文字コードと
表示側の文字コードが異なっている可能性が高いと思います

サーバにアップロードした段階で文字コードが
変わっている、改行コードが変わっていることはありませんか?

この回答への補足

お世話になります。
色々と試してみた結果、結局EUC-JP・SJISの問題でした。
本当にお世話おかけしました。ありがとうございました。

補足日時:2003/09/22 00:51
    • good
    • 0
この回答へのお礼

ありがとうございます。
これからEUCに全てコンバートかけて処理していきます。ただ、なんとなくうちのレンタル鯖の問題の気もしています。よそ様が作られたスクリプトも同様の動きをしていることが判明しました。 

お礼日時:2003/09/19 22:34

PHPでのマルチバイト文字関係の設定が、開発環境と本番


環境で異なっているためではないでしょうか?
これらの設定はPHPのconfigureスクリプトがあるトップ
ディレクトリに php.ini-distというファイルはありま
せんか?これを自分でコピーして、設定を行います。

マルチバイト関係の設定はせいぜい6個くらいしかありま
せんし、以下のURLにSJISの場合とEUCの場合の設定例が
書いてあります。

または手っ取り早く、本番環境からphp.iniをコピーして
くればよいのではないでしょうか?

参考URL:http://de3.php.net/manual/ja/print/ref.mbstring. …
    • good
    • 0
この回答へのお礼

ありがとうございます。
手っ取り早く、コピーしたいのですが、なにせレンタルなもので手が出せません。
バージョン等々の違いが顕著に影響するのは何とかして欲しいです。Perl5の方が楽ですよね。

お礼日時:2003/09/19 22:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q"di qua" の"di"について(イタリア語)

服のお店で店員が Lo specchio e` di qua. 「鏡はこちらのほうです」

di qua は辞書によると「ここから、こちらのほうに、こっちに」ですが、di を省いて Lo specchio e` qua. とも言えるのでしょうか?

qua が di qua になることによって意味が変わるのでしょうか?

では、qui についてはどうでしょうか?

Lo specchio e` di qui. あるいは、
Lo specchio e` qui.

辞書によれば qua と qui の違いは、前者が漠然とこちらの方、後者がはっきりここ、ということだそうです。では di がつくことによって?

di 自体も辞書で調べてみたのですが、私の疑問を氷解してくれるような記述は見当たりませんでした。

Aベストアンサー

例えば、案内される時“Lo specchio e` di qua. ”
見える場所にある時(振り向けば済む時とか...)“Lo specchio e` qua.”
という感じで使われていると思います。

qui について勝手な見解ですが、diがつく事によって、
・関係代名詞の di cuiと聞き間違えやすい事。
・tra/fraと同じように、fra tre oreとは言ってもtra tre oreとは言わないのと同じで、diのi、quiのiの音が耳障り(?)。
qua と qui 自体は la`や li`よりも明確な差は無いと思いました。

Qmbstring.http_outputとoutput_handlerについて

ただ今PHPで内部はUTF-8、出力はSJISの
携帯サイトを作成してるんですが
設定ファイルでmbstring.http_outputにSJISを設定し
ブラウザ表示させたところ変化せず、
マニュアルを確認したところ、
output_handlerにmb_output_handlerを設定すると書かれており
そのとおりに設定して表示させたところ無事SJISで表示されました。

そこで質問なんですがmbstring.http_outputは
あくまで出力用の文字コードを設定するだけの項目で
これ単体では何も動作はせず
output_handlerにmb_output_handlerを設定して
初めて動作するという解釈でもいいんでしょうか?

またoutput_handlerにmb_output_handlerを設定しても
mbstring.http_outputがpassの場合はoutput_handlerは
動作しないという解釈でもいいんでしょうか?

今、頭がこんがらがってしまいなんとなく理解出来てませんので
すいませんがアドバイスよろしくお願いします。

ただ今PHPで内部はUTF-8、出力はSJISの
携帯サイトを作成してるんですが
設定ファイルでmbstring.http_outputにSJISを設定し
ブラウザ表示させたところ変化せず、
マニュアルを確認したところ、
output_handlerにmb_output_handlerを設定すると書かれており
そのとおりに設定して表示させたところ無事SJISで表示されました。

そこで質問なんですがmbstring.http_outputは
あくまで出力用の文字コードを設定するだけの項目で
これ単体では何も動作はせず
output_handlerにmb_output_handlerを設定して
...続きを読む

Aベストアンサー

あまり深く考えたことはないですが…

>mbstring.http_outputがpassの場合
以下の条件が満たされた場合に、このハンドラは charset HTTP ヘッダを設定します。
・header() で Content-Type が 設定されていない場合
・デフォルトの MIME 型が text/ で始まる
・http_output の設定が pass 以外
とあるので、動作しません。

もうひとつの質問は、クリティカルな記述は見つけれませんでしたが
その考えで問題はないのではないかと思います。
ただし、独自のob_startのコールバックを使っている場合や、
http_output の値を参照するような処理があれば挙動は変わります。

参考URL:http://jp.php.net/manual/ja/function.mb-output-handler.php

Q「DI」旅行業界用語?

単純で申し訳ないのですが、「DIとは」何の略ですか?
「DI値」とか「旅行DI」のように使われていました。もし、旅行業界用語でしたらどこかオススメの旅行業界用語を検索できるサイトをおしえてください。
よろしくお願いします。

Aベストアンサー

DI値とは景況感を示すための指標の一つで、ディフュージョン・インデックス(Difuusion Index)の略です。
ある事柄に対して良い(増加) と答えた企業の割合から、悪い(減少)と答えた企業の割合を引いて計算した値で、経済指標として一般的に使われるものです。

旅行DIと言うのは旅行業界の会社のうち、良くなっていると答えた割合と、悪くなっていると答えた割合との差を示しているものだと思います。

Qfile_exists('http://192.168.0.9/x.php');

が機能しません
file_exists('/var/www/html/x.php');
(FC4を使っている)

include('http://192.168.0.9/x.php');

機能します
どうしたら
file_exists('http://192.168.0.9/x.php');
も機能するようになるでしょうか?
file_existsの引数がURLのときにも機能するようにするにはどうすればよいのでしょうか?

Aベストアンサー

>どのラッパーが stat() ファミリーをサポートしているか
http://jp.php.net/manual/ja/wrappers.http.php
によるとHTTP プロトコルで stat( ) は、サポートしていないようです。
ファイルが存在するかどうかだけなら、fopen でオープンできるかどうかで代用できるような気がします。

QシーケンスのDIにパッド!?

コンサートに行った時のことですが、ある曲の出だしが音があきらかに
小さくて、「あ、なんか失敗したな」と素人でも分かる程でした。
連れは「シーケンスのDIにパッドが入っていた?のではないか」
とか「音の大小のバランスの問題かな」などと言っていたのですが、
「シーケンスのDIにパッドが入る」とはどういう現象ですか?
シーケンス、DI、パッドの役割も含めて分かりやすく教えて下さい。

Aベストアンサー

シーケンスとは
コンピューターから出る音のことをシーケンスと呼びます。
主にピコピコした音などの場合が多い。

DI
楽器と、PA音響システムの真ん中に入れる機材です。
ノイズを軽減してくれます。
楽器→DI→ミキサーといったかんじです。

パッド
DIには大体パッドというスイッチがついています。
このスイッチを入れると大きすぎる入力を低く抑えてくれます。
たとえばベースの音が大きすぎて、ミキサーで音が割れてしまう・・
なんて時にパッドのスイッチを入れるといいかんじになります。
パッドのスイッチは以外と硬く、DIの奥まったところについてるので
よほどのことがなければ自然に切り替わったりしません。

そのある曲の出だしの音が
ドラムとかギターの音ではなく、シンセ系の音であるならば

出だしの音=シーケンスの音

であり、

明らかに小さい音量だということは
その曲の直前でだれかがDIを蹴っ飛ばしてしまい、パッドのスイッチが切り替わってしまい、その結果シーケンスの音が小さい音になってしまった

という可能性はゼロではないですね。

ただDIは蹴っ飛ばすようなところには置かないと思いますので
音響さんのうっかりミスだと思いますw

シーケンスとは
コンピューターから出る音のことをシーケンスと呼びます。
主にピコピコした音などの場合が多い。

DI
楽器と、PA音響システムの真ん中に入れる機材です。
ノイズを軽減してくれます。
楽器→DI→ミキサーといったかんじです。

パッド
DIには大体パッドというスイッチがついています。
このスイッチを入れると大きすぎる入力を低く抑えてくれます。
たとえばベースの音が大きすぎて、ミキサーで音が割れてしまう・・
なんて時にパッドのスイッチを入れるといいかんじになります。
パ...続きを読む

Q$str=preg_replace('/\u3000/','  ',$str);

によってutf-8の空白文字をhtmlの空白文字に変換しようとしたのですがエラーになります
どうしたらいいのでしょうか?

Aベストアンサー

>そもそも?のところにコード表現で空白文字を入力する手段はないのでしょうか?
\xE3\x80\x80
で一応いいかと思いますが…

QベースのDIについて

ベースのDIについて
ベースのDI購入で迷っています。具体的には
・SANS AMP BASS DRIVER DI
・MXR M-80
・HARTKE BASS ATTACK
です。何かオススメ要素などあれば教えてください。
一応、楽器店で試奏したのですが、どれも、それぞれの良い個性があって、、、決められない。
使ってるベースはジャズベでPUはセイモアダンカンです。
音としては、HARTKEアンプみたいなクリアな低音が欲しいです。
値段は特に指定ありません。

Aベストアンサー

個人的な意見とお考えいただきたいですが、いずれも個性はあるプリアンプ(これらはD.I.BOXではなく、プりアンプ+D.I.と考えてください。純粋なD.I.BOXとは少し違うので)ですので、最後はこのみですけど、現場使用時に「一番堅い」という点では、SANS AMP BASS DRIVER DIを推しておきます。

これらの機種は、本来的にはPAやレコーディング機器に送る音に味付けするための機器ですから、レコーディングでHARTKEサウンド指向なら、HARTKE BASS ATTACKもありかもしれませんが、LIVE用ならSANS AMP BASS DRIVER DIの方が堅い・・・という意見です。

Q$str=mb_ereg_replace('goo','グッド',$str);

によって
$strの中の'good'を'グッド'に変更したいのですが
'good'は大文字と小文字を区別しないようにしたいのですがどうしたらいいでしょうか?
例えば
'goOd'も'グッド'にしたいのです。
PHPマニュアルには詳しい使い方が載っていないので困っています。

Aベストアンサー

大文字小文字を無視するなら
mb_eregi_replace
では?

参考URL:http://jp2.php.net/manual/ja/function.mb-eregi-replace.php

Q9070Di2と6770Di2のケーブル互換

現在、アルテグラの6770Di2を使っており、9070Di2への交換をしたく思っています。
メインのロードを9070Di2にして、折り畳みバイク(MR-4)へ6770Di2を移植したいのですが
9070のSTI、FD、RD、ジャンクションは購入して取り付けるとして、現在ロードで利用しているDi2の配線は、そのまま利用できるのでしょうか?
そのまま利用できるのであれば、全部自分で取り付けてみようと思っているのですが、お世話になっている2件のショップに聞いてみると、使えるというショップと、使えませんというショップに分かれてしまっています。

また、6770Di2はショップでE-tubeでの設定をしてもらい、ボタン押しっぱなしで多段一気変速にしているのですが、9070Di2は初期状態では多段一気変速になっているのでしょうか?それとも連打での変速なのでしょうか?
もし自分でつけた際、持ち込みでお世話になっているショップにE-tubeでの設定を頼むのも気が引けるので。。。

よろしくお願いします。

Aベストアンサー

あるプロの方が,サテライトスイッチを上ハンに付けていました。お聞きするとアルテも新デュラもサテライトスイッチとコードは共通とのことでした。ですから使用出来るのではないかと思います。しかし,どちらにしましてもコードは,一組は新しく買わない限り移植することが出来ないのではないですか?

新デュラのブレーキは良くなったようですね。下りで楽になったということは,レバーが良くなったのかブレーキアーチが良くなったのか知りませんが,山がお好きなようでしたら交換した方が良いのではないかと思います。また,変速の初期設定は多段一気変速ではないと思います。さらに,自動調節機能が優れているため,緊急避難的使用ですが,カンパ11速スプロケのホイールがそのまま使用出来るようです。

新デュラ,イイですね。しかし,価格が高すぎですし,あのクランクのデザインは好きになれませんが…

Q$_SERVER["HTTP_HOST"]と$_SERVER["SERVER_NAME"]の違い(というか意味合い)は?

phpのバージョンは、5.1.6で、OSのバージョンはCentOS4.4です。

お聞きしたいのですが、
$_SERVER["HTTP_HOST"]と$_SERVER["SERVER_NAME"]の違い(というか意味合い)はなんでしょうか?

phpinfoでみても、同じの場合したことがみたことがないもので。

ご存じの方いらっしゃいましたら、お教えいただければ幸いです。

よろしくお願いいたします。

Aベストアンサー

$_SERVERはサーバーの環境変数やPHPの情報を保存した配列です。
$_SERVERのうち、環境変数はgetenv()でも取得できます。

$_SERVER["SERVER_NAME"]で取得できる名前は
Apacheの場合はhttpd.confで、
UseCanonicalNameがOnになっているときに、ServerNameで指定された値が使われます。
UseCanonicalNameがOffになっていると、ドメイン名やIPアドレスになります。
UseCanonicalNameがOffになっていて、http://127.0.0.1:8001/のようにポート指定でアクセスした場合は、ポート番号は除かれます。

HTTP_HOSTはHTTPでアクセスしたときのホスト名、つまりドメイン名+ポート番号がそれに当たります。
(厳密には違うかも知れませんが、、、)
http://www.ietf.org/rfc/rfc2616.txt

VirtualHostを使ってポート指定でアクセスすると違いが出ますが、
デフォルトでUseCanonicalNameはOffになっていますし、ホスティングサービスではOnにする理由もありません。
http://httpd.apache.org/docs/2.0/ja/mod/core.html#usecanonicalname
(「これが有用な場合の例は、」の段落参照。主にイントラネット向け?)

、、、と書くのはいいとして、私自身、UseCanonicalNameやホスト名の意味や使い方をわかっていません。
こうすれば違いが出るということだけですが、
ご参考まで。

$_SERVERはサーバーの環境変数やPHPの情報を保存した配列です。
$_SERVERのうち、環境変数はgetenv()でも取得できます。

$_SERVER["SERVER_NAME"]で取得できる名前は
Apacheの場合はhttpd.confで、
UseCanonicalNameがOnになっているときに、ServerNameで指定された値が使われます。
UseCanonicalNameがOffになっていると、ドメイン名やIPアドレスになります。
UseCanonicalNameがOffになっていて、http://127.0.0.1:8001/のようにポート指定でアクセスした場合は、ポート番号は除かれます。

HTTP_HOST...続きを読む


人気Q&Aランキング

おすすめ情報