搜外网>搜外问答>问答页面

PHP 大神求救!怎样让这个 只替换一次即可! 悬赏1元 已结束


                // 内链处理

                if (! ! $tags = $this->model->getTags()) {

                    // 将A链接保护起来

                    $rega = "/<a .*?>.*?<\/a>/i";

                    preg_match_all($rega, $data->content, $matches1);

                    foreach ($matches1[0] as $key => $value) {

                        $data->content = str_replace($value, '#rega:' . $key . '#', $data->content);

                    }

                    // 执行内链替换

                    foreach ($tags as $value) {

                        $data->content = str_replace($value->name, '<a href="' . $value->link . '" target="_blank">' . $value->name . '</a>', $data->content);

                    }

                    // 还原A链接

                    $pattern = '/\#rega:([0-9]+)\#/';

                    if (preg_match_all($pattern, $data->content, $matches2)) {

                        $count = count($matches2[0]);

                        for ($i = 0; $i < $count; $i ++) {

                            $data->content = str_replace($matches2[0][$i], $matches1[0][$matches2[1][$i]], $data->content);

                        }

                    }

                }

追加问题
    8 人参与回答
钟景强
钟景强 · 霍尔元件,霍尔开关,霍尔芯片

你需要程序员的拥抱

如果是执行很多个操作,一般是for循环,执行到1 return跳出就好了

刘小艾
刘小艾 · 我要推广网,重庆网络营销推广平台

看不懂

看晕了 

丫头
丫头 · 阿克苏专业软件开发,专业小程序开发、网站制作、SEO QQ:1917970850

去牛客,CSDN问问

崔家大院
崔家大院 · 网站诊断、建站、快速排名

找技术

还是找技术解决吧,如果公司没有就去淘宝