[PHP-users 113] Re: SJISでの全角文字について
Akihiro Sagawa
php-users@php.gr.jp
Tue, 19 Jun 2001 13:52:58 +0900
こんにちは。佐川です。
# php-usersでは、はじめて、かな。
FYIに補足させていただきます。
以下の引用部分は'Y.Watanabe'さんの
"[PHP-users 109] Re: SJISでの全角文字について"からのものです。
>渡辺です。
こんにちは。
これは、PHP3-i18n時代のREADME.i18nの記述だと思います。
# 今でも確かphp4.0.6のmb_stringの中にあるはずです。
>■ 一部の文字の後に必ず`\'がつく
>
>内部エンコードをShift_JISにしたとき、一部の文字の後に必ず`\'がついたり、
>それ以外の場合でも`"'などの文字が`\"'のようにクォートされる。
>
>PHPの設定であるmagic_quotes_gpcがデフォルトで有効(On)になっているのが
>原因です。php3.ini(もしくは、.htaccess)の設定を無効(Off)にするか、スク
>リプト側で、StripSlashes関数を使うことによって取り除くことが出来ます。
この方法(FAQ)はそのままPHP4でも当てはまります。
# php3.iniではなくphp.iniに書きますが。
しかし、以下の方法は (PHP3でもPHP4でも)
正しく適用することができません。
詳しくは、
石垣さんの書かれた[PHP 8790]などのスレッド
http://sidecar.ics.es.osaka-u.ac.jp/php-jp/archives/msg08771.html
を参照してください。
>また、日本語文字列だけ取り除くには、$quote_strが、Shift_JISで表現されて
>いるならば ereg_replace関数を用いて、
>
>ereg_replace(sprintf("([%c-%c%c-%c]\\\\)\\\\",0x81,0x9f,0xe0,0xfc),
> "\\1",$quote_str);
>
>とすれば、可能です。
自らの誤りを指摘したくはないのですが、
素直にこの方法を実装してしまうと問題になるため、
ポインタとして示させていただきました。
ご参考のご参考までに。
# jstringとmb_stringのドキュメントで
# 補足訂正していただけないでしょうか >塚田さん
では。
☆・・・・‥‥‥‥‥‥…‥‥‥‥‥‥・・・・
佐川 昭宏 mailto:sagawa@sohgoh.net
http://pelican.sohgoh.net/
・・・・‥‥‥‥‥‥…‥‥‥‥‥‥・・・・☆