需要一个表单字段来验证Wordpress中的CSV文件

时间:2018-01-31 07:20:36

标签: php wordpress csv text

我一直在这里遇到障碍,我是一个新手编码器,也有点生疏。下面的代码在wordpress函数文件中完全有效,但我真的想从CSV文件验证vs输入2000行进行验证。

add_filter('frm_validate_field_entry', 'mobileform_custom_validation', 10, 3);
function mobileform_custom_validation($errors, $posted_field, $posted_value){
if($posted_field->id == 496){ //change 496 to the ID of the field to validate
if(!in_array($posted_value, array('001','002'))){ //change 001 and 002 to your allowed values
  //if it doesn't match up, add an error:
$errors['field'. $posted_field->id] = 'Please contact us.';
}
}
return $errors;
}

1 个答案:

答案 0 :(得分:2)

此行将csv文件的第一列放入数组中:

$list = array_map(function ($line) { return str_getcsv($line)[0]; }, file('../path_to/your_csv_file.csv'));

然后你必须在测试中使用它:

if(!in_array($posted_value, $list)){

您的代码将如下所示:

add_filter('frm_validate_field_entry', 'mobileform_custom_validation', 10, 3);
function mobileform_custom_validation($errors, $posted_field, $posted_value){
    if($posted_field->id == 496){
        $list = array_map(function ($line) { return str_getcsv($line)[0]; }, file('../path_to/your_csv_file.csv'));
        if(!in_array($posted_value, $list)){
            $errors['field'. $posted_field->id] = 'Please contact us.';
        }
    }
    return $errors;
}

但是你必须通过替换

来正确设置csv文件的路径
../path_to/your_csv_file.csv

通过CSV文件的真实路径。我不能为你做这部分。