我需要使用 php 序列化一个值,该值可以是单个字符串,也可以是逗号分隔的列表。 (我正在将用户数据电子表格导入 WordPress 自定义字段。)
该字段的值可能类似于以下任意一个:
'cats'
'cats, dogs, birds'
如果它只是一个逗号分隔的列表,我会这样做:
function list_to_serialized( $value ){
// Split the list at the commas.
$value = explode(',', $value);
// Return the serialized list.
return serialize( $value );
}
但是这个函数也需要适用于单个值。我是否需要先在所有单个值的末尾插入逗号,然后分解,然后序列化?或者有没有更有效的方法?
您可以使用 preg_split,通过匹配逗号和换行符的正则表达式进行分割:
preg_split('/[,\r?\n]/', $value, -1, PREG_SPLIT_NO_EMPTY);