Я хочу закодировать все мои ссылки на base64
, но шаблон регулярного выражения не работает должным образом.
Это мой код:
$html = 'ahsgdjagshjdgasjdgajgsd gjagdjhagsjhgda sgdhjagsjdgajhgdjad<a href="http://short.awsubs.co/be9Vk">Solidfiles</a> jashd sha7st7atsdgasgda sgahsfd ahgsfafd<a href=https://link.safelinkconverter.com/review.php?id=aHR0cDovL2JfdC5seS8ySDdMajh3&c=1&user=61942 rel=nofollow>Zippyshare</a>';
$text = '@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@';
echo $result = preg_replace_callback($text, function($matches) {
return '<a href="'.base64_encode($matches[1]).'">'.$matches[2].'</a>';
}, $html);
Я прочитал этот поток, который предлагает использовать preg_replace_callback()
для кодирования значения href
: