【问题标题】:Need A Form Field To Validate From A CSV File In Wordpress需要一个表单字段来验证 Wordpress 中的 CSV 文件
【发布时间】:2018-01-31 07:20:35
【问题描述】:

我在这里遇到了障碍,我是一个新手编码器,也有点生疏。下面的代码在 wordpress 函数文件中完全有效,但我真的想从 CSV 文件验证而不是输入 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;
}

【问题讨论】:

  • 或者针对文本文件进行验证也可以。

标签: php wordpress csv text


【解决方案1】:

这一行会将 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 文件的真实路径。我不能为你做这部分。

【讨论】:

  • 我在第二部分添加了,我到底把第一部分放在哪里?如果我将它单独放在函数文件中它不起作用?
  • 我编辑了我的答案,向您展示代码的外观。 cvs文件的路径还是要自己改...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-22
  • 1970-01-01
  • 2017-05-24
  • 1970-01-01
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多