Ir para conteúdo
Fórum Script Brasil
  • 0

Encurtar URL para o microblog Twitter.


daniel guanambi

Pergunta

Pessoal,

Estou precisando encurtar a URL das postagens do meu site para enviar ao microblog Twitter.

Identifiquei o código em PHP que faz isso em meu site, porém não estou conseguindo fazer a implementação. Pelo que ví o código é um array que pega o Título e a URL do post do site e envia para alguns sites de relacionamento. A alteração deverá ser feita apenas para o Twitter, para os demais não há problema em continuar com mais de 140 caracteres (Título e URL).

Levando em conta o código postado, minha intenção era usar algo do tipo:

echo "{substr(MYNUKETITLE, 60, 120)}"; para descartar a string a partir do caracter 60 no Titulo dos posts.

O problema é que não sei onde colocar o comando substr e/ou como adaptá-lo apenas para o Twitter.

Fico no aguardo. Obrigado.

Código onde se pretende fazer a alteração:

$bookmarks = array ();

$bookmarks["twitter"] = array (

"siteurl" => "http://twitter.com/?status={MYNUKETITLE} {MYNUKEURL}",

"siteimgsm" => "images/socialbookmarks/s_twitter.gif",

"siteimglg" => "images/socialbookmarks/twitter.gif",

"imgalt" => "Compartilhar no Twitter"

);

$bookmarks["facebook"] = array (

"siteurl" => "http://www.facebook.com/share.php?t={MYNUKETITLE}&u={MYNUKEURL}",

"siteimgsm" => "images/socialbookmarks/s_facebook.jpg",

"siteimglg" => "images/socialbookmarks/facebook.png",

"imgalt" => "Compartilhar no Facebook"

);

$bookmarks["orkut"] = array (

"siteurl" => "http://www.addthis.com/bookmark.php?v=250&winname=addthis&pub=alvix&source=tbx32-250&lng=pt&s=orkut&url={MYNUKEURL}&title={MYNUKETITLE}",

"siteimgsm" => "images/socialbookmarks/s_orkut.jpg",

"siteimglg" => "images/socialbookmarks/orkut.gif",

"imgalt" => "Compartilhar no Orkut"

);

$bookmarks["google"] = array (

"siteurl" => "https://www.google.com/bookmarks/mark?op=add&bkmk={MYNUKEURL}&title={MYNUKETITLE}",

"siteimgsm" => "images/socialbookmarks/s_google.jpg",

"siteimglg" => "images/socialbookmarks/google.jpg",

"imgalt" => "Compartilhar no Google"

);

$bookmarks["digg"] = array (

"siteurl" => "http://digg.com/submit?phase=2&url={MYNUKEURL}&title={MYNUKETITLE}",

"siteimgsm" => "images/socialbookmarks/s_digg.jpg",

"siteimglg" => "images/socialbookmarks/digg.png",

"imgalt" => "Compartilhar no Digg"

);

$bookmarks["delicious"] = array (

"siteurl" => "http://del.icio.us/login/?url={MYNUKEURL}&title={MYNUKETITLE}",

"siteimgsm" => "images/socialbookmarks/s_delicious.jpg",

"siteimglg" => "images/socialbookmarks/delicious.png",

"imgalt" => "Compartilhar no Dellicious"

);

Obs: tentei colocar o código através do CodeBox, más deu erro na página.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Pessoal,

Estou precisando encurtar a URL das postagens do meu site para enviar ao microblog Twitter.

Identifiquei o código em PHP que faz isso em meu site, porém não estou conseguindo fazer a implementação. Pelo que ví o código é um array que pega o Título e a URL do post do site e envia para alguns sites de relacionamento. A alteração deverá ser feita apenas para o Twitter, para os demais não há problema em continuar com mais de 140 caracteres (Título e URL).

Levando em conta o código postado, minha intenção era usar algo do tipo:

echo "{substr(MYNUKETITLE, 60, 120)}"; para descartar a string a partir do caracter 60 no Titulo dos posts.

O problema é que não sei onde colocar o comando substr e/ou como adaptá-lo apenas para o Twitter.

Fico no aguardo. Obrigado.

Código onde se pretende fazer a alteração:

$bookmarks = array ();

$bookmarks["twitter"] = array (

"siteurl" => "http://twitter.com/?status={MYNUKETITLE} {MYNUKEURL}",

"siteimgsm" => "images/socialbookmarks/s_twitter.gif",

"siteimglg" => "images/socialbookmarks/twitter.gif",

"imgalt" => "Compartilhar no Twitter"

);

$bookmarks["facebook"] = array (

"siteurl" => "http://www.facebook.com/share.php?t={MYNUKETITLE}&u={MYNUKEURL}",

"siteimgsm" => "images/socialbookmarks/s_facebook.jpg",

"siteimglg" => "images/socialbookmarks/facebook.png",

"imgalt" => "Compartilhar no Facebook"

);

$bookmarks["orkut"] = array (

"siteurl" => "http://www.addthis.com/bookmark.php?v=250&winname=addthis&pub=alvix&source=tbx32-250&lng=pt&s=orkut&url={MYNUKEURL}&title={MYNUKETITLE}",

"siteimgsm" => "images/socialbookmarks/s_orkut.jpg",

"siteimglg" => "images/socialbookmarks/orkut.gif",

"imgalt" => "Compartilhar no Orkut"

);

$bookmarks["google"] = array (

"siteurl" => "https://www.google.com/bookmarks/mark?op=add&bkmk={MYNUKEURL}&title={MYNUKETITLE}",

"siteimgsm" => "images/socialbookmarks/s_google.jpg",

"siteimglg" => "images/socialbookmarks/google.jpg",

"imgalt" => "Compartilhar no Google"

);

$bookmarks["digg"] = array (

"siteurl" => "http://digg.com/submit?phase=2&url={MYNUKEURL}&title={MYNUKETITLE}",

"siteimgsm" => "images/socialbookmarks/s_digg.jpg",

"siteimglg" => "images/socialbookmarks/digg.png",

"imgalt" => "Compartilhar no Digg"

);

$bookmarks["delicious"] = array (

"siteurl" => "http://del.icio.us/login/?url={MYNUKEURL}&title={MYNUKETITLE}",

"siteimgsm" => "images/socialbookmarks/s_delicious.jpg",

"siteimglg" => "images/socialbookmarks/delicious.png",

"imgalt" => "Compartilhar no Dellicious"

);

Obs: tentei colocar o código através do CodeBox, más deu erro na página.

Olá!

Rapaz, se eu não me engano o código ficará assim:

$bookmarks["twitter"] = array (
"siteurl"    => "http://twitter.com/?status=" . substr("{MYNUKETITLE}", 60, 120) . " {MYNUKEURL}",

Forte abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Olá!

Rapaz, se eu não me engano o código ficará assim:

$bookmarks["twitter"] = array (
"siteurl"    => "http://twitter.com/?status=" . substr("{MYNUKETITLE}", 60, 120) . " {MYNUKEURL}",
Forte abraço
Oi André, Obrigado. Fiz a alteração, porém {MYNUKETITLE} não retornou a variável correspondente. Tentei tirar as aspas, trocar por apóstrofos, etc, más não funcionou. Já {MYNUKEURL} retornou a url correspondente.
Por exemplo, usei:
$bookmarks["twitter"] = array (
"siteurl"    => "http://twitter.com/?status=" . substr("{MYNUKETITLE}", 3, 4) . " {MYNUKEURL}",
O microblog Twitter recebeu como resultado:
NUKE http://www.sitefulanodetal... (perceba que NUKE foi retirado de MYNUKETITLE (posição 3,4), sendo que o valor da variável não foi retornado (que seria o Título do post).

Editado por daniel guanambi
Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal;

Após a estrutura da matriz citada acima, existe o código abaixo.

Provavelmente em algum ponto do código abaixo, a matriz deve estar passando as variáveis MYNUKETITLE e MYNUKEURL.

$bookmarkHTML = "";
    $mynukeurl = str_replace('&', '&', $mynukeurl);
    $mynukeurl = htmlentities(urlencode($mynukeurl));
    $mynuketitle = urlencode($mynuketitle);
    $numBookmarks = count($bookmarks);
    $numkey = 0;
    foreach ($bookmarks as $sitename => $sitedetails)
    {
        $siteurl = $sitedetails['siteurl'];
        $siteurl = str_replace("{MYNUKEURL}", $mynukeurl, $siteurl);
//        if ($numkey = 0) {
//           $siteurl = str_replace("{MYNUKETITLE}", substr(($mynuketitle),1,4), $siteurl);
//        } else {
//          $siteurl = str_replace("{MYNUKETITLE}", $mynuketitle, $siteurl);
//        }
        $imgalt = $sitedetails['imgalt'];
        $bookmarkHTML .= "<a href=\"$siteurl\" title=\"$imgalt\" target=\"_blank\">";
        if ($imgsize == "small") {
            $siteimg = $sitedetails['siteimgsm'];
        } else {
            $siteimg = $sitedetails['siteimglg'];
        }
        if ($imgsize == "text") {
            $bookmarkHTML .= "$sitename";
        } else {
            $bookmarkHTML .= "<img border=\"0\" src=\"$siteimg\" title=\"$imgalt\" alt=\"$imgalt\">";
        }
        $bookmarkHTML .= "</a>";
        $numkey = $numkey + 1;
        if ($numkey < $numBookmarks) $bookmarkHTML .= "$separator";
    }
    return $bookmarkHTML;
}
?>

Eu tentei fazer a alteração comentada (com //), acreditando que o loop do código possuisse um contador ($numkey) que contasse quantos elementos tinha na matriz (0 a 5, sendo 0 para o Twitter). Ao passar pelo 0 (Twitter), o Titulo do Post (MYNUKETITLE) seria reduzido.

Minha implementação deu certo, porém funciona para todos os elementos (redes sociais) e eu quero que o corte no titulo aconteça somente para o microblog do Twitter (se é que o próprio blog logo estará fazendo isso, já funciona em outros paises).

Não conheço PHP, por isso não tive condições de resolver esse problema. Se alguém puder me ajudar ficarei muito grato. Obrigado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...