正则分类筛选

前段时间需要对用户在后台提交的信息进行整理。提交的信息不能有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);
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值