使用php更改href值的所有出现

时间:2016-02-12 18:16:00

标签: php regex preg-replace

我希望在将它们提交到数据库之前更改href标记的所有值。

假设我有一个带有一些锚标记的段落,我想更改所有锚标记的值。

我的目标是对网址进行base64编码,然后在网址中添加前缀 如果网址是

http://google.com

在提交之前想要将其更改为 http://exmaple.com/visit/base64encodeedurl

1 个答案:

答案 0 :(得分:1)

您可以使用preg_replace_callback功能和base64_encode功能

$string = 'Your string to save with http://goo.gl urls ...';
$fixedString = preg_replace_callback(
    '#[-a-zA-Z0-9@:%_\+.~\#?&//=]{2,256}\.[a-z]{2,18}\b(\/[-a-zA-Z0-9@:%_\+.~\#?&//=]*)?#si',
    function($matches) {
        return 'http://exmaple.com/visit/' . base64_encode($matches[0]); 
    },
    $string
);

这是一个实例https://3v4l.org/TUktY