2016-12-07 4 views
0

Как найти URL-адреса с поддоменами в моем тексте и заменить их на base64_encode?как вернуть полный URL-адрес, если у меня есть субдомен

$a = "bla bala sub.mywebsite.com bla bala bla mywebsite.com bla bla 
bla bala bla bla bla sub2.mywebsite.com and bla so bla mywebsite.com 
and bla so bla sub.mywebsite.com bla bala..." 

$url = "mywebsite.com"; 

if (strpos($a, '%.$url') !== false) { 
    return base64_encode(mysubs.$url); 
} 

Мое поддомены могут содержать любые символы.

ответ

0

Использование preg_replace_callback функции:

$pattern = sprintf('/\S*%s/', preg_quote($url, '/')); 

echo $b = preg_replace_callback($pattern, function ($matches) { 
    return base64_encode($matches[0]); 
}, $a); 

Так как вы написали, что ваши субдомены могут содержать любые символы, регулярное выражение в образце кода соответствует нулю или более символов без пробелов (\S*), а затем $url со специальными символы сбежали (например, /\S*mywebsite\.com/).

Пример вывода

bla bala c3ViLm15d2Vic2l0ZS5jb20= bla bala bla bXl3ZWJzaXRlLmNvbQ== bla bla 
bla bala bla bla bla c3ViMi5teXdlYnNpdGUuY29t and bla so bla bXl3ZWJzaXRlLmNvbQ== 
and bla so bla c3ViLm15d2Vic2l0ZS5jb20= bla bala... 
Смежные вопросы