Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, boa noite.
Estou precisando pegar de um html somente a URL, mas na expressão regular que fiz está vindo url com imagem.
Segue:
$soLinks = preg_match_all('/(http:\/\/www\.dominio\.com\.br\/[A-Za-z0-9\/\.\_\?\=\&]+)/',stripslashes($conteudo),$links);
Se alguém puder me ajudar eu agradeço.
Té mais
você quer pegar somente a URL de onde?
se for da URL que aparece no endereço do seu navegador, use:
// para pegar somente as requisições
$url = $_SERVER['QUERY_STRING'];
// para pegar a URL inteira
$url = $_SERVER['REQUEST_URI'];
Agora se você quer pegar de uma string, posta a string que você deseja tratar aí:
Aí você escreve a url como ela é e depois como você queria que ela ficasse.
Obrigado pelas respostas.
O conteúdo é uma página html.
E nela preciso pegar somente os links, o que está ai pega tbm os com imagens.
rootzig, deu certo a ER que lhe passei?
>
Obrigado pelas respostas.
O conteúdo é uma página html.
E nela preciso pegar somente os links, o que está ai pega tbm os com imagens.
Bom dia,
Ainda não amigo, ainda está vindo com endereço de imagem -> http://www.dominio.com.br/img/imagem.gif
preciso que venha com as urls sem imagens.
Valeu
Vou explicar o que estou fazendo, assim fica melhor.
É um sistema de envio de e-mail, e quando criar a camapanha de e-mail eu preciso que todos os links desse campanha mude para que eu possa fazer a estatística de acesso por link.
Então preciso pegar todos os links da campanha e mudar para o meu padrão.
$somenteLink = '/((http:\/\/www\.dominio\.com\.br)\/[A-Za-z0-9\/\.\_\?\=\&]+)/';
$urlBaseEstatisitca = "http://www.urlnova.com.br/mailing/site.php?idMail={idMail}&mail={mail}&campanha={campanha}urll={urlNova";
$campanhaModificada = preg_replace($somenteLink,$urlBaseEstatisitca."$1",stripslashes($conteudo));Então... fiz uma coisa no modo gambiarra aqui sem gambiarra seria usando ER mas a gambiarra é bom as vezes =D
<?php
$url = explode("/","http://www.dominio.com.br/img/imagem.gif");
echo "http://".$url[2]."/";
?>Uma parte do array:
>
[4] => [http://www.dominio.com.br/site.asp?cod=57277](http://www.dominio.com.br/site.asp?cod=57277)
[5] => [http://www.dominio.com.br/email/2/logo.gif](http://www.dominio.com.br/email/2/logo.gif)
Preciso somente do link sem a imagem, e nem sempre o endereço vai ser igual. Tem que ser por ER mesmo pra ser flexível.
Valeu
>
Uma parte do array:
Preciso somente do link sem a imagem, e nem sempre o endereço vai ser igual. Tem que ser por ER mesmo pra ser flexível.
Valeu
Ahn, agora eu entendi...
Veja, agora é totalmente flexivel para domínio, https, com ou sem www, em fim, qualquer dominio ele vai capturar.
<?
$string = "http://www.dominio.com.br/email/2/logo.gif";
$soLinks = preg_match_all('/^https?:\/\/?www\.?[a-zA-Z0-9_\-]+\.[a-zA-Z]{2,4}+\.[a-zA-Z]{2}+/im', $string, $links);
var_dump($links);
?>
Resultado:
array
0 =>
array
0 => string 'http://www.dominio.com.br' (length=25)
Veja se isso resolve o seu problema
Lembre-se, o array fica dessa forma pois você está utilizando preg_match_all(), caso não seja dessa forma que você espera o resultado, considere utilizar preg_match()
Obrigado pela resposta.
Quase isso, pq eu preciso da url inteira com ou sem os parâmetros.
Ta difícil aqui, não achei uma solução
Uhm, entendi, então você precisa me informar a string completa, pois eu preciso de um delimitador para definir até onde a Expressão regular vai capturar. Um espaço por exemplo (\s).
Poste ai pra avaliar
Boa noite rootzig!
Se você precisa apena da URL, adicione um parentêses na parte da expressão que você deseja, veja:
$soLinks = preg_match_all('/(http:\/\/www\.dominio\.com\.br\/)[A-Za-z0-9\/\.\_\?\=\&]+/', stripslashes($conteudo), $links);