-3
<?php

class validation {

function clean_txt($str, $letter_case="") {

    trim($str);
    filter_var($str, FILTER_SANITIZE_STRING);
    switch ($letter_case) {
        case "L":
            strtolower($str);
            break;
        case "U":
            strtoupper($str);
            break;
        case "T":
            ucwords($str);
            break;
        default:
            $str="";
    }
    return ($str);
}

function clean_email($email_var) {

    filter_var($email_var, FILTER_SANITIZE_EMAIL);
    return ($email_var);

}

function clean_int($int_var) {

    trim($int_var);
    filter_var($int_var, FILTER_SANITIZE_NUMBER_INT);
    return ($int_var);

}

$functions = new validation();
$var = $functions->clean_txt(" Hello, HOw Are you?", "L");
echo $var;
?>
<br>
<?php
$var = $functions->clean_email(":zsdazey@gmail.com");
echo $var;
?>
<br>
<?php
$var = $functions->clean_int("38u");
echo $var;
?>

它返回:

你好吗?
:email@gmail.com
38u

它应该返回:

你好吗?
电子邮件@gmail.com
38

有人看到我在这里缺少什么吗?我知道这些方法至少传递了变量,并且trim()函数工作得很好。

4

1 回答 1

2

和之类trim()的函数不会修改字符串本身,而是返回一个副本。您需要将该返回值存储在一个变量中:filter_var()strtolower()

function clean_txt($str, $letter_case="") {

    $str = trim($str);
    $str = filter_var($str, FILTER_SANITIZE_STRING);
    switch ($letter_case) {
        case "L":
            $str = strtolower($str);
            break;
        case "U":
            $str = strtoupper($str);
            break;
        case "T":
            $str = ucwords($str);
            break;
        default:
            $str="";
    }
    return ($str);
}

同样在clean_email()和中clean_int()

于 2014-06-15T22:52:38.233 回答