スレッド表示 | フラット表示〕 全トピック 920 件中 592 番目 次≫ ≪前

me_eregマルチバイト文字の質問

created: 2004-06-14 15:05 | modified: 2004-06-15 13:07 | reply: 2

[1663] me_eregマルチバイト文字の質問

user: ほげ | created: 2004-06-14 15:05
よろしくご教示お願い申し上げます。
やりたいこと→クライアントからの入力で、/*?+¥などの記号を入力した際に、再入力を促したい。

$name=$_GET["name"]; ※前ページのnameというtextboxに"¥"を入力して送信
if(mb_ereg("¥",$name)){
$n = "ヘンな文字が入ってます";
}else{
$n = "OKです!";
}
$name=mb_convert_encoding($name,"SJIS");
echo "$name <br>";
echo "$n \n";

me_eregのパターンにマルチバイト文字を指定するときは、文字コードを指定しなければいけないのでしょうか。検索するとやはりjcode.php を利用するほうがよいのでしょうか。

サーバーはredhat8 apache2 php4.3です
.htaccessの設定内容です
php_value mbstring.language Japanese
php_value default_charset "Shift_JIS"
php_value mbstring.detect_order auto
php_flag mbstring.encoding_translation On
php_value mbstring.substitute_character long
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
php_value mbstring.internal_encoding EUC-JP
reply: 1664 返信 編集 削除

[1664] mb_regex_encoding

user: ゆうじ | created: 2004-06-14 17:30
こんにちは。

/*?+¥などの記号は、全角で間違いないですね。
(半角ならばまったく違った話になりますので念のため確認)

mb_regex_encoding() で、
マルチバイト正規表現での文字エンコーディングが得られます。
http://jp2.php.net/manual/ja/function.mb-regex-set-options.php

この値と、内部エンコーディングが同じなら、
特に変換する必要は無いのでは。


現在どのような現象になってるのかわからないので
的を得た解答になってない気がします・・・。
Parent: 1663  reply: 1665 返信 編集 削除

[1665] マルチバイト ヒットしましたぁ!!

user: ほげ | created: 2004-06-15 13:07
ありがとうございます。ご指摘頂いた通り、mb_regex_encoding() を設定したところ、

-----
input text name="¥"
//全角¥です
-----

mb_language("japanese");
mb_regex_encoding("SJIS");
header("Content-type: text/html; charset=Shift_JIS");

$name = mb_convert_encoding($_POST['name'], "SJIS", "auto");
if(mbereg("¥",$name)){
$dd = "「¥」あるよ!";
}else{
$dd = "「¥」ないよ!";
}

結果→「¥」あるよ!

ありがとうございます。ゆうじ様、よろしくご自愛下さいませ。それでは
Parent: 1664  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 592 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑