我希望在将它们提交到数据库之前更改href标记的所有值。
假设我有一个带有一些锚标记的段落,我想更改所有锚标记的值。
我的目标是对网址进行base64编码,然后在网址中添加前缀 如果网址是
http://google.com
在提交之前想要将其更改为
http://exmaple.com/visit/base64encodeedurl
答案 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