Jump to content
rjsma

Capturar o favicon do url da caixa de texto

Recommended Posts

rjsma

Boas,

Tenho uma dúvida que penso que seja simples.Gostava de gravar na base de dados o favicon do url que está numa caixa de texto.A minha dúvida não e como gravar na base de dados mas como consigo apanhar o favicon do url em questão.Podiam dar-me umas luzes deste assunto, sff?

Cumprimentos

Share this post


Link to post
Share on other sites
KTachyon

O favicon está sempre na raíz de um servidor e tem sempre o nome "favicon.ico".

Por exemplo, no caso do portugal-a-programar, basta fazeres um request pelo endereço:

http://www.portugal-a-programar.org/favicon.ico


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
KTachyon

De certeza que foste à raíz do site?

http://pplware.sapo.pt/favicon.ico

No sítio onde encontrar a primeira barra (a seguir ao nome do domínio), é a raíz do site, e é lá que se encontra sempre o favicon.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
rjsma

Não é ai que está a minha dúvida. Ao gravar na base de dados o link que introduzi na caixa de texto gostava que também gravasse o favicon desse link. Se colocar www.portugal-a-programar.org/forum/index.php?action=forum como e que dá para apanhar o favicon do link em questão se o favicon está no www.portugal-a-programar.org/favicon.ico.

Isto é que está-me a fazer um pouco de confusão.

Cumprimentos

Share this post


Link to post
Share on other sites
KTachyon

Com uma expressão regular, achas a raíz do site e adicionas o favicon.ico.

Qualquer coisa do tipo:

$url = "http://endereco.do.site.com/qualquer/coisa/whatever.html";

preg_match("/^(http:\/\/)?([^\/]+)/i", $url, $domain_name);
$favicon_addr = $domain_name[0]."/favicon.ico";

EDIT: Neste caso o resultado ($favicon_addr) vai ser:

http://endereco.do.site.com/favicon.ico


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
rjsma

hum...o preg_match, só utilizei só 1 vez na minha vida e foi para verifica se um endereço de email era válido ou não.

Penso que o ereg faz o mesmo efeito que o pre_match,certo?

Diz-me uma coisa, está variável $domain_name é do que ?

Cumprimentos

Share this post


Link to post
Share on other sites
KTachyon

O $domain_name tem o endereço todo até ao fim do nome de domínio. O nome de domínio é tudo até encontrar a primeira /

Ou seja, ficas só com a raíz do site, adicionas o "/favicon.ico" e ficas com o endereço para poderes aceder ao favicon desse site.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
KTachyon

Com o preg_match. O terceiro argumento é o "ponteiro" para um array de resultados.

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
rjsma

Hum...já compreendi como funciona.Já consegui fazer o que queria.

Diz-me uma coisa, tenho o URL gravado na BD, não existe nenhuma função do php que permite mostrar a imagem atraves do url?

Na BD fica gravado só o link (www.portugal-a-programar.org/favicon.ico) e se meter um echo aparece me só o endereço e não a imagem do favicon.

Share this post


Link to post
Share on other sites
KTachyon

Bem... se fizeres o echo do código para mostrar a imagem, é capaz de dar:

echo '<img src="'.$favicon_url.'" />';


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
KTachyon

Sim, de facto o explode funciona, se excluirmos o protocolo e depois o concatenarmos na string final :)


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
rjsma

Bem... se fizeres o echo do código para mostrar a imagem, é capaz de dar:

echo '<img src="'.$favicon_url.'" />';

Tens razão, resultou. Muito obrigado pelo apoio que me deste, foi fundamental  :)

Share this post


Link to post
Share on other sites
rjsma

Surgiu-me uma pequena dúvida.Caso não haja nenhum favicon no  .../favicon.ico gostava que mostrasse um icon por defeito.Penso que um simples if faça isso.Não posso usar o empty porque no campo favicon fica sempre gravado um url.O que gostava de saber se existe uma funcão que faça a verificação que quero


if(empty($favicon_addr)){
$favicon_addr= "imagens/vazio.ico";
}

Abraços

Share this post


Link to post
Share on other sites
scorch

O que é que queres fazer? Verificar se o ficheiro existe?


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
scorch
if(!file_exists("./favicon.ico")){
    $favicon_addr= "imagens/vazio.ico";
} else {
    $favicon_addr= "./favicon.ico";
}


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.