<?php
$allowedUrl = 'myphp.local'; // Сайт, на который ссылаться разрешено.
$replaceTo = '[Ссылка удалена]'; // Фраза, на которую нужно заменять запрещённые ссылки.
$re = '/((?:https?:/{2})?[a-z\-а-яё0-9\.]+\.[a-z\-а-я0-9ё]{2,}/?/iu'; // С учётом русских букв.
$text = 'Список ссылок: http://myphp.local, habr.com, https://toster.ru, русский-сайт.рф/.';
/* Сначала нужно найти вообще все имеющиеся в тексте ссылки. */
$links = []; // В этом массиве будет список всех ссылок.
preg_match_all($re, $text, $links); // Поиск ссылок.
$links = $links[1];
/* Теперь нужно найти те ссылки, которые ссылаются не на $allowedUrl и заменить их. */
foreach($links as $index => $url)
{
if(strpos($url, $allowedUrl) !== false)
{
unset($links[$index]);
}
}
$text = str_replace($links, $replaceTo, $text);
/* Результат. */
echo $text;