drskaka
(usa Outra)
Enviado em 09/09/2020 - 09:51h
johnnysaymon escreveu:
Olá @drskaka.
Sim, existe tenta fazer assim então:
<?php
function procpalavras($frase, $palavras)
{
$palavrasUnidas = implode('|', $palavras);
$sufixos = implode('|', ['net','com','org','ly']);
preg_match_all("/((?:{$palavrasUnidas}){1}\.{1}(?:{$sufixos}){1}(?:\.br)?(?:\/[\w-]+)?)/m", $frase, $resultado);
if(isset($resultado[1]) == false) {
return '';
}
return implode(', ', $resultado[1]);
}
$frase = "O banco XYZ quer falar com você. Acesse xyz.net e bit.ly/LinkCurto saiba mais";
$palavras = array ("coelho","eu","xyz","bit");
echo procpalavras($frase, $palavras);
Observação: Esse código vai resolver seu problema se tiver um cenário bem específico, pois ele não vai pegar qualquer link, apenas os passados como parâmetros pela função e com os sufixos definidos.
Bom dia johnnysaymon:
Não querendo abusar da sua preciosa ajuda, mas teria como pegar ao invés de um determinado domínio pegar toda e qualquer palavra
que esteja unida por um ponto em uma mensagem, como por exemplo
Tenho uma casa.linda com um lindo jardim. o código destacar
casa.linda pois desta maneira eu poderia fazer com que meu sistema não dependesse de eu informar centenas de palavras e centenas de sufixos para verificação e destacaria toda e qualquer palavra que estivesse unida por um ponto.
Teria como fazer isso alterando esse código que você me mandou?
Muitíssimo obrigado mais uma vez.
Abraço!