phpによる文字の置き換え


UTF-8 で書かれたテキストファイルがあり、
この中にある「半角円記号」を「半角バックスラッシュ」に置き換えるには
どうすればよろしいのでしょうか?

エディタで開いて書き直す。ではなく、phpで行う方法です。

よろしくお願いします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2008/03/12 22:06:18
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pahoo No.2

回答回数5960ベストアンサー獲得回数633

ポイント60pt

mb_ereg_replace関数を使ってみました。

テキストファイルの入出力部分は省いています。

mb_regex_encoding('UTF-8');
$sour = "半角\xC2\xA5です";
$dest = mb_ereg_replace("\\xC2\\xA5", "\x00\x5C", $sour);
echo "$sour<br />\n";
echo "→ $dest";
id:worldtravel

ありがとうございます。

教えていただいたコードを元に少しいじったらうまく行きました。

2008/03/12 22:05:43

その他の回答2件)

id:bonlife No.1

回答回数421ベストアンサー獲得回数75

ポイント10pt

半角円記号と半角バックスラッシュは同じもの(2進数(バイナリ)の0x5c、10進数の92)です。

フォントによって表示が変わっているだけです。

そのため、置換方法はありません。

表示を変更したい場合、表示させるフォントを変更してみてください。

id:worldtravel

ありがとうございます

2008/03/12 21:51:46
id:pahoo No.2

回答回数5960ベストアンサー獲得回数633ここでベストアンサー

ポイント60pt

mb_ereg_replace関数を使ってみました。

テキストファイルの入出力部分は省いています。

mb_regex_encoding('UTF-8');
$sour = "半角\xC2\xA5です";
$dest = mb_ereg_replace("\\xC2\\xA5", "\x00\x5C", $sour);
echo "$sour<br />\n";
echo "→ $dest";
id:worldtravel

ありがとうございます。

教えていただいたコードを元に少しいじったらうまく行きました。

2008/03/12 22:05:43
id:y-kawaz No.3

回答回数1422ベストアンサー獲得回数226

ポイント10pt

半角円記号と半角バックスラッシュは同じ文字コードです。

表示場所によって字形が違うのはフォントの違いによるものです。

id:worldtravel

ありがとうございます

2008/03/12 21:51:52

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • 円記号とバックスラッシュ bonlifeです。この質問のイルカ回答を見て、初めて知った衝撃の事実。私の回答内容で16進数と書くべきところを2進数とか書いちゃってるのは置いておいて。 16進
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません