Php CodeIgniter验证规则

Php CodeIgniter验证规则,php,codeigniter,Php,Codeigniter,我在config中的form_validation.php中有我的规则,它调用了my_form_validation.php中的一个函数,该函数扩展了CI_form_验证 form_validation.php规则: array( 'field' => 'phone', 'label' => 'Phone', 'rules' => 'is_valid_phone' ), MY_Form_validation.php方法:

我在config中的form_validation.php中有我的规则,它调用了my_form_validation.php中的一个函数,该函数扩展了CI_form_验证

form_validation.php规则:

array(
        'field' => 'phone',
        'label' => 'Phone',
        'rules' => 'is_valid_phone'
    ),
MY_Form_validation.php方法:

public function is_valid_phone($phone)
    {
        echo 'phone validation: '.$phone;
        return preg_match("/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x", $phone) ? true : false;
    }
表单验证中的其他规则不调用是有效的电话和是有效的邮政编码,在开发和生产中运行良好。出于某种原因,这两种方法适用于开发人员,但不适用于生产人员。php版本略有不同。dev上的5.2.8和prod上的5.2.17。所有文件都已同步,我可以确认这一点。我在is\u valid\u phone方法中放了一个echo语句,它显示在dev上,但不显示在prod上

我不知道是什么问题。有什么想法吗


谢谢大家。

可能是回声。在显示某些标头之前,您有某种缓存或echo出现问题

尝试将回显值放在字符串上,这样肯定会起作用。您也可以简单地尝试使用load->view方法。试试这个:

    $ci = &get_instance();
    $ci->load->view('just_echo',array('data' => 'phone validation: '.$phone));
而视图just_echo.php将是:

    <?php
            echo $data;
    ?>


您是否尝试过使用
$this->set_消息(“是有效的电话”,“%s是无效的电话格式XXX-XXX-XXXX”)是否为有效电话的信息设置了lang文件?$CI->form\u validation->set\u message('is\u valid\u phone','error')$CI->form_validation->set_message('is_valid_postal_code','error');我以前没有回声,但它不起作用。回音显示在我的开发服务器上,验证规则有效。如果使用set_消息,可能会有效。这肯定与回声有关。找到了解决方案,文件名是我的表单验证。改名为我的。。。而且它有效!