原创

小程序解析富文本图片半路劲不显示的解决方案!PHP版


小程序解析富文本图片半路劲不显示的解决方案!PHP版


辛辛苦苦吧富文本解析到小程序了,但是好多图片是办路径的,显示不出来怎么办呢?

这就需要用到世界上最好用的PHP语言了

下面直击上方法


/**
 * 替换fckedit中的图片 添加域名
 * @param  string $content 要替换的内容
 * @param  string $strUrl 内容中图片要加的域名
 * @return string
 * @eg
 */
function replacePicUrl($content = null, $strUrl = null) {
    if ($strUrl) {
        //提取图片路径的src的正则表达式 并把结果存入$matches中
        preg_match_all("/]+>/isU",$content,$matches);
        $img = "";
        if(!empty($matches)) {
            //注意,上面的正则表达式说明src的值是放在数组的第三个中
            $img = $matches[2];
        }else {
            $img = "";
        }
        if (!empty($img)) {
            $patterns= array();
            $replacements = array();
            foreach($img as $imgItem){
                $final_imgUrl = $strUrl.$imgItem;
                $replacements[] = $final_imgUrl;
                $img_new = "/".preg_replace("/\//i","\/",$imgItem)."/";
                $patterns[] = $img_new;
            }

            //让数组按照key来排序
            ksort($patterns);
            ksort($replacements);

            //替换内容
            $vote_content = preg_replace($patterns, $replacements, $content);

            return $vote_content;
        }else {
            return $content;
        }
    } else {
        return $content;
    }
}


上述是使用的正则替换的方式,当然你有其他方式替换也是可以的



//读取文章详情
    public function detail()
    {
        $id = Request::instance()->param("id");
        $res = \app\common\model\Article::with("user")->where( "id",$id)->find();
        $content = replacePicUrl($res->content,"https://admin.trianglefit.top/");
        $res->content = $content;
        if($res){
            return json(["code"=>200,"msg"=>"成功","data"=>$res]);
        }else{
            return json(["code"=>201,"msg"=>"暂无文章","data"=>""]);
        }
    }



感谢:https://myfreespace.iteye.com/blog/1078303


留言反馈
问题反馈渠道,如有软件无法下载或者其他问题可反馈。【由于某种原因,目前留言不展示】
用户需要登录后才能留言反馈