前段时间需要对用户在后台提交的信息进行整理。提交的信息不能有html之类的格式,但是会夹杂着图片和文本。后台需要对提交的信息进行筛选把图片和文本分离,并且最终转为json格式保存以便接口调用。考虑到上述要求,我没有提供编辑器,而是采用以下方式让用户操作:单独提供一个上传功能,上传后返回图片路径,用户按需求自行编辑图片路径及其余文本,最后提交。
代码:
// 用户提交的内容
$str = <<<"STR"
uploads/kaka.png
内容一:这是个测试文本内容
uploads/haha.png
内容二:这是个测试文本内容
uploads/test.jpeg
uploads/abc.gif
内容三:这是个测试文本内容
uploads/kaka.PNG
uploads/jpg
内容四:这是个测试文本内容
STR;
// 筛选图片
$pattern = "/uploads+\/((?!uploads+).)+(jpeg|jpg|png|gif)/i";
preg_match_all($pattern, $str, $uploads); // 获取匹配部分(图片)
$uploads = $uploads[0];
$others = preg_split($pattern, $str, 0); // 获取非匹配部分(文本)
$final = array();
foreach($others as $key => $val) {
// 文本
$final[] = array(
'type' => 0,
'content' => $val
);
foreach($uploads as $k => $v) {
// $key == $k,按顺序添加
if($key == $k){
// 图片
$final[] = array(
'type' => 1,
'content' => $v
);
}
}
}
$final = json_encode($final);
print_r($final);