PHP é à quinta-feira – Criar Links
Boas,
A nível de direitos sobre o código, devo remeter-vos para o meu primeiro artigo desta rubrica.
Esta semana trago-vos uma função que já criei há muito tempo, e tem sofrido algumas melhorias e alterações consoante o projecto em causa.

Para alguns pode não parecer útil, mas simplifica-me a vida muitas vezes usar uma função em PHP para gerar código HTML que se repete com regularidade, como acontece com os links (tag <a>)
<?php
function getLink($url,$name,$params = '')
{
$config_url = “https://pplware.sapo.pt/”;
if (!stristr($url,"http://") && !stristr($url,"ftp://") && !stristr($url,"https://") && !stristr($url,"javascript:") && !stristr($url,"mailto:"))
{
$url = $config_url.$url;
}
if (!stristr($url,"mailto:"))
{
$url = str_ireplace("&","&",$url);
$url = str_ireplace("&","&",$url);
}
$link = '<a href="'.$url.'"';
if (!empty($params))
$link .= ' '.$params;
$link .= '>'.$name.'</a>';
return $link;
}
?>
Modo de utilização:
É bastante simples e intuitivo, segue um exemplo de como criar um link para o fórum e outro para o artigo “Correr aplicações Android no Ubuntu”.
<?php
echo getLink('http://forum.pplware.com/',”Fórum Pplware”,'target=”_blank”');
echo getLink('2009/05/28/correr-aplicacoes-android-no-ubuntu/',”Correr aplicações Android no Ubuntu”);
?>
Qualquer dúvida ou sugestão, estão completamente à vontade.
Este artigo tem mais de um ano




















Muito bom, continuem, agradecemos! 😀
Na verdade eu acho mais fácil criar esse tipo de link com classes, mas parabéns, ótimo trabalho!
beleza Bruno…super cool, alto nivel, como sempre…keep it up buddy ! 🙂
E porque não no 3º argumento colocar apenas “blank” e a função tratar do resto?
Foi uma coisa que também pensei, mas vendo bem podes ter o interesse em adicionar alguma função de javascript ao clicar na ligação, o coloca um atributo title, por exemplo.
Claro que se pode “simplificar” dessa forma, caso o 3º argumento tivesse um objectivo simples, como o target, mas utilizo assim no geral, porque permite adicionar funções em javascript, class’s, etc.
Isso seria o 4º argumento opcional 🙂
Boa dica. Isso aplicado a uma função para criar automaticamente hiperligações de um texto, era fantástico! 😉 fica a sugestão.
O 3º parâmetro da função podia ser um array. exemplo: array(‘title’ => ‘kklkoisa’, ‘target’ => ‘_blank’).
Grande coincidência! Antes de vir dar a minha espreitadela diária ao Pplware, estive a desenvolver uma pequena função em PHP para criar links! 🙂 Um pouco diferente, pois substitui sempre uma determinada palavra pelo respectivo link com a função str_replace.
Dá muito jeito quando temos um site onde inserimos bastante conteúdo dinâmico e queremos que certa palavra apareça sempre como link.
Em vez de
if (!stristr($url,"http://") && !stristr($url,"ftp://") && !stristr($url,"https://") && !stristr($url,"javascript:") && !stristr($url,"mailto:")) { $url = $config_url.$url; }porque não simplificar?
if(!preg_match('/((ht|f)tp(s)?:\/\/|(javascript|mailto):)/i', $url)) { $url = $config_url.$url; }^^ Owned xD
Fica mais curto, mas expressões regulares consomem muitos mais recursos (principalmente com tantos “ou”‘s) do que comparações de string. No entanto, é verdade que o que fizeste também está correcto e até abrange um caso que eu não tenho, o do ftps://
Não é para desmoralizar mas acredita que neste caso fica mais rápido do que chamar 5 vezes a função stristr().
Não fiz os testes, mas não digo que é impossível.
Se é esse o caso, obrigado pela dica.