電子書籍の厳選無料作品が豊富!

タイトルの文字制限で上手くかけませんでしたが、PHPファイルをサーバーにアップロードすると、半角バックスラッシュが半角円記号に置き換わってしまいます。

元のファイルはUTF-8で保存、ちゃんと半角バックスラッシュで表示されていますが、サーバーにアップロードしたものを開くと半角円記号に置き換わっています。
このせいでPHPエラーが出てプログラムが機能しません。

アップロードしたファイルを編集すれば機能するのですが、HP作成ソフトのプラグインの中のファイルなので、アップロードする度に修正するのが非常に手間です。

回避策があればよろしくお願いいたします。

A 回答 (3件)

アップロード後のファイル中の文字がU+005Cであるならば,別のエラーが存在しているのでしょう。


バックスラッシュで表示されるか円記号で表示されるかは単純にフォントの問題です。

アップロード後のファイル中の文字がU+00A5であるならば,変換をしてしまっています。
FTPなどのプロトコルレベルでこの変換が行われることはありません。
なので,利用しているソフトウェアの問題になります。

この回答への補足

先ほど、使用しているソフトからでは無く、FTPソフトを使って該当ファイルをアップロードしてみました。
結果は文字の変換は行われていませんでした。ソフト、もしくはプラグイン側に問題があるのかもしれません。(ソフト、プラグインは外国製の物です)

アップロード前のプラグインの中のPHPファイルを編集して対処出来ればいいのですが…。

補足日時:2012/05/30 17:53
    • good
    • 0
この回答へのお礼

やはりソフトからアップロードされた物は、U+00A5になっていました。

意味が分からないのですが、アップロードされる前のファイルを、文字コードMacOS(Japanese)でU+005Cで修正し、それをアップロードしたら無事メールフォームが機能しました。

サーバーに書き出されたファイルの文字コードはUTF-8になっていました。
ソフト内の処理だと思うので意味がわかりませんが、とりあえず解決したという事にします。

ヒントを頂けて助かりました、ありがとうございました。

お礼日時:2012/05/30 22:47

バックスラッシュが円マークに変わっちゃうのは主にWindowsですね。


Parse error: syntax error, unexpected '"' in /virtual/xxx/public_html/xxx.com/contact/xxx.php on line 300

このエラーはおそらくですが文字列の中の円マークがエスケープ文字として判定されたのでは??
文字列を一括で置換してやれば解決しませんか?

変数 = str_replace("円円", "円円円", 変数);  // 円マークだと表示されなさそうなので漢字で

的外れだったらゴメンナサイ
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

書き漏らしていましたが、使っているソフトはMac専用のものです。

とても奇妙な方法ですが、元のファイルを UTF-8 で開くと、半角バックスラッシュになっているんです。
そこで、Japanese(MacOS)に変換して半角¥として表示、それを全て半角バックスラッシュに変換、そのままJapanese(MacOS)で保存。そのままアップロード。
これで上手くいきました。理由は不明です。

一括置換を試しましたが今回は上手くいきませんでした。ソフトの仕様による問題だと思うのでお気になさらないで下さい。

お礼日時:2012/05/30 23:34

ごめんなさい、質問の意図がわからないのですが



半角バックスラッシュ=半角円マークですよ
見るソフトや表示するフォントによって見え方がちがうだけです

>このせいでPHPエラーが出てプログラムが機能しません。

したがってそのせいではないと思いますが・・・
具体的にどんなエラーなのでしょうか?

この回答への補足

分かり辛くてすみません。
メールフォームのプラグインが吐くPHPファイルなんですが、実際に送信すると

Parse error: syntax error, unexpected '"' in /virtual/xxx/public_html/xxx.com/contact/xxx.php on line 300

のようなエラーがでます。
これで、半角円マークを半角バックスラッシュに直してやると正常に機能するんです。

自分なりに調べて、フォントによって表示が違うというのは理解しましたが、実際修正しないと機能しないのが現状です…。

補足日時:2012/05/30 17:49
    • good
    • 0

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