wordpress sanitize array? 时间:2011-08-02 作者:FLX 我有一个自定义的post表单,它将数据发送到使用wp\\u insert\\u post创建post的页面。我可以轻松清理大多数数据,但我的标记有一些问题,我在数组中检索:$tags = $_POST[\'tags\']; 在将这些标记用作tags\\u输入之前,如何成功清理所有名称?谢谢 4 个回复 最合适的回答,由SO网友:FLX 整理而成 如果有人感兴趣,我可以这样解决: $tags = $_POST[\'tags\']; if (count($tags) > 5){ echo \'Niet meer dan 5 tags\'; $stop = true; } if (is_array($tags)) { foreach ($tags as &$tag) { $tag = esc_attr($tag); } unset($tag ); } else { $tags = esc_attr($tags); } SO网友:chrisguitarguy 这里有一种使用PHP的方法array map 功能:// Good idea to make sure things are set before using them $tags = isset( $_POST[\'tags\'] ) ? (array) $_POST[\'tags\'] : array(); // Any of the WordPress data sanitization functions can be used here $tags = array_map( \'esc_attr\', $tags ); SO网友:Broshi 我需要一个递归的卫生设施,所以我的解决方案是:/** * Recursive sanitation for an array * * @param $array * * @return mixed */ function recursive_sanitize_text_field($array) { foreach ( $array as $key => &$value ) { if ( is_array( $value ) ) { $value = recursive_sanitize_text_field($value); } else { $value = sanitize_text_field( $value ); } } return $array; } SO网友:Lenin Zapata 几乎所有情况下都可以使用此功能。/** * Recursive sanitation for text or array * * @param $array_or_string (array|string) * @since 0.1 * @return mixed */ function sanitize_text_or_array_field($array_or_string) { if( is_string($array_or_string) ){ $array_or_string = sanitize_text_field($array_or_string); }elseif( is_array($array_or_string) ){ foreach ( $array_or_string as $key => &$value ) { if ( is_array( $value ) ) { $value = sanitize_text_or_array_field($value); } else { $value = sanitize_text_field( $value ); } } } return $array_or_string; } 结束 文章导航