您的位置:首页 > 编程语言 > PHP开发

PHP validate/php 字符验证/php 文字類をチェック

2007-11-07 10:54 288 查看
function checkParameter($parameter, $type, $max, $min) {
$flag = true;
mb_regex_encoding("SJIS");

if (!(isset($parameter) && $parameter !== "")) {
return false;
}

if ($max <>'' || $min <> ''){
if (strlen($parameter) > $max || strlen($parameter) < $min) {
$flag = false;
}
}
switch($type) {
case 1: //絵文字ではないのみ
if ($this->emojiCheck($parameter)) {
$flag = false;
}
break;
case 2: //カナとひらがなと漢字とスペースのみ
$parameter = mb_convert_kana($parameter, "K", "SJIS");
if (!mb_ereg("^[亜-腕ぁ-んァ-ヶ/ー  ]*$", $parameter)) {
$flag = false;
}
break;
case 3: //英数字のみ
if (!preg_match("/^[a-zA-Z0-9]+$/", $parameter)) {
$flag = false;
}
break;
case 4: //数字のみ
if (!preg_match("/^[0-9]+$/", $parameter)) {
$flag = false;
}
break;
case 5: //カナのみ
$parameter = mb_convert_kana($parameter, "K", "SJIS");
if (!mb_ereg("^[ァ-ヶ/ー]*$", $parameter)) {
$flag = false;
}
break;
case 6: //ひらがなのみ
if (!mb_ereg("^[ぁ-ん]*$", $parameter)) {
$flag = false;
}
break;
case 7: //英数字と「_」のみ
if (!preg_match("/^[a-zA-Z0-9_]+$/", $parameter)) {
$flag = false;
}
break;
case 8: //A-Zのみ
if (!preg_match("/^[A-Z]+$/", $parameter)) {
$flag = false;
}
break;
case 9: //A-Jのみ
if (!preg_match("/^[A-J]+$/", $parameter)) {
$flag = false;
}
break;
case 10: //1と2のみ
if (!preg_match("/^[1-2]+$/", $parameter)) {
$flag = false;
}
break;
case 11: //1-4のみ
if (!preg_match("/^[1-4]+$/", $parameter)) {
$flag = false;
}
break;
case 12: //1-9のみ
if (!preg_match("/^[1-9]+$/", $parameter)) {
$flag = false;
}
break;
case 13: //1のみ
if (!preg_match("/^[1]+$/", $parameter)) {
$flag = false;
}
break;
case 14: //0,1,2のみ
if (!preg_match("/^[0-2]+$/", $parameter)) {
$flag = false;
}
break;
case 15: //1,2,3のみ
if (!preg_match("/^[1-3]+$/", $parameter)) {
$flag = false;
}
break;

default:
break;
}

return $flag;
}

/**
* 絵文字検出
*
* @param string $data 任意の文字列
* @return boolean :true → 絵文字あり false → 絵文字なし
*/
function emojiCheck($data) {
if (!isset($data)) {
return false;
}

$terminalType = $this->getTerminalType();

$data = str_replace(array("/r/n", '/n', '/r'), array('','',''), $data);

if ($terminalType == "DOCOMO") {
return $this->iemojiCheck($data);
} elseif ($terminalType == "AU") {
return $this->ezEmojiCheck($data);
} elseif ($terminalType == "VODAFONE") {
return $this->sbEmojiCheck($data);
} else {
return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: