
タイトルの文字制限で上手くかけませんでしたが、PHPファイルをサーバーにアップロードすると、半角バックスラッシュが半角円記号に置き換わってしまいます。
元のファイルはUTF-8で保存、ちゃんと半角バックスラッシュで表示されていますが、サーバーにアップロードしたものを開くと半角円記号に置き換わっています。
このせいでPHPエラーが出てプログラムが機能しません。
アップロードしたファイルを編集すれば機能するのですが、HP作成ソフトのプラグインの中のファイルなので、アップロードする度に修正するのが非常に手間です。
回避策があればよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
アップロード後のファイル中の文字がU+005Cであるならば,別のエラーが存在しているのでしょう。
バックスラッシュで表示されるか円記号で表示されるかは単純にフォントの問題です。
アップロード後のファイル中の文字がU+00A5であるならば,変換をしてしまっています。
FTPなどのプロトコルレベルでこの変換が行われることはありません。
なので,利用しているソフトウェアの問題になります。
この回答への補足
先ほど、使用しているソフトからでは無く、FTPソフトを使って該当ファイルをアップロードしてみました。
結果は文字の変換は行われていませんでした。ソフト、もしくはプラグイン側に問題があるのかもしれません。(ソフト、プラグインは外国製の物です)
アップロード前のプラグインの中のPHPファイルを編集して対処出来ればいいのですが…。
やはりソフトからアップロードされた物は、U+00A5になっていました。
意味が分からないのですが、アップロードされる前のファイルを、文字コードMacOS(Japanese)でU+005Cで修正し、それをアップロードしたら無事メールフォームが機能しました。
サーバーに書き出されたファイルの文字コードはUTF-8になっていました。
ソフト内の処理だと思うので意味がわかりませんが、とりあえず解決したという事にします。
ヒントを頂けて助かりました、ありがとうございました。
No.3
- 回答日時:
バックスラッシュが円マークに変わっちゃうのは主にWindowsですね。
Parse error: syntax error, unexpected '"' in /virtual/xxx/public_html/xxx.com/contact/xxx.php on line 300
このエラーはおそらくですが文字列の中の円マークがエスケープ文字として判定されたのでは??
文字列を一括で置換してやれば解決しませんか?
変数 = str_replace("円円", "円円円", 変数); // 円マークだと表示されなさそうなので漢字で
的外れだったらゴメンナサイ
回答ありがとうございます。
書き漏らしていましたが、使っているソフトはMac専用のものです。
とても奇妙な方法ですが、元のファイルを UTF-8 で開くと、半角バックスラッシュになっているんです。
そこで、Japanese(MacOS)に変換して半角¥として表示、それを全て半角バックスラッシュに変換、そのままJapanese(MacOS)で保存。そのままアップロード。
これで上手くいきました。理由は不明です。
一括置換を試しましたが今回は上手くいきませんでした。ソフトの仕様による問題だと思うのでお気になさらないで下さい。
No.2
- 回答日時:
ごめんなさい、質問の意図がわからないのですが
半角バックスラッシュ=半角円マークですよ
見るソフトや表示するフォントによって見え方がちがうだけです
>このせいでPHPエラーが出てプログラムが機能しません。
したがってそのせいではないと思いますが・・・
具体的にどんなエラーなのでしょうか?
この回答への補足
分かり辛くてすみません。
メールフォームのプラグインが吐くPHPファイルなんですが、実際に送信すると
Parse error: syntax error, unexpected '"' in /virtual/xxx/public_html/xxx.com/contact/xxx.php on line 300
のようなエラーがでます。
これで、半角円マークを半角バックスラッシュに直してやると正常に機能するんです。
自分なりに調べて、フォントによって表示が違うというのは理解しましたが、実際修正しないと機能しないのが現状です…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
SmartyでHTMLソースの変更が反...
-
SendMailがエラーを返さない
-
CSV出力にHTMLが入ってしまう
-
.phpファイルが、表示されない
-
PHPからメールを送る@さくらイ...
-
centos6のlogにscript not foun...
-
ob_end_clean と ob_clean の違...
-
php.ini を設定を変更すると再...
-
CFileDialogの最初のディレクト...
-
IIS+PHP スクリプトから仮想デ...
-
glide3x.dllがないと表示されま...
-
PHPのif文でその処理を途中で抜...
-
PHP PDOライブラリが読み込まれ...
-
include先でのinclude元の変数...
-
try~catch構文は、どういうメ...
-
FTPコマンドでディレクトリごと...
-
Notice: Undefined offset: 1を...
-
PHPでメールを受信するには?
-
テキストボックスにデータベー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
youtubeに音声のみのmp4ファイ...
-
「クラウドにアップロード」」...
-
FTPClientで転送結果(OKかFAIL)
-
ftpでアップロードが出来ない
-
BASP21のFTPで日本語ファイル名...
-
ファイルサイズがpost_max_size...
-
初めまして、
-
VBでクラウドストレージにア...
-
どうして送信されないのでしょ...
-
ファイルをGET送信でアップロー...
-
アップロードしたファイルの移...
-
アップロードしたのに表示され...
-
またまた。
-
利用容量や画像サイズ、画像フ...
-
アップロードなのですが
-
CGI.pmでファイルアップロード...
-
$filePath = './user_img/' . $...
-
ファイルのアップロード
-
PHPを使ったWEBサイトでアップ...
おすすめ情報