Регулярное выражение php для получения уникальных доменов в строке
Столкнулся с проблемой: на взломанном сайте или просто подобрали пароль появилась «левая» ссылка на сайт какого-то сео оптимизатора. Если бы появился вирус — сразу было бы уведомление, а так как ссылка вполне себе безобидная, то он провисела около полугода и я подозреваю, что будет висеть и дальше в следующий раз.
Хочу проверить остальной контент сайта на присутствие такого рода внешних ссылок: то есть мне нужно регулярное выражение, которое на вход получает скл дамп контентных таблиц, а на выходе список или массив уникальных (не повторяющихся ранее) доменов.
В принципе можно уникальность опустить и получить хотя бы весь список доменов. Надеюсь на вашу помощь, так как гугл и свои навыки в регулярках пока не помогли.
Да, спасибо. Ваше понаходило все, что похоже на домен — именно то, что и справшивал. Я понял уже позже, что можно сузить круг поиска http:// префиксом.
Вобщем, мое решение, вдруг кто-то поиском будет пользоваться и искать то же самое
public function UrlList() {
$sString=file_get_contents(SERVER_PATH.'/backup3.sql');
$sPattern="/http:\/\/(.*)\//iU";
preg_match_all($sPattern,$sString,$aUrl);
$aUrlList=$aUrl[0];
$aUrlListUnique=array();
if ($aUrlList) foreach($aUrlList as $aValue) {
if (!in_array($aValue,$aUrlListUnique)) $aUrlListUnique[]=$aValue;
}
sort($aUrlListUnique);
Base::$sText.=Debug::PrintPre($aUrlListUnique,false,true);
}