Jump to content
Fórum Script Brasil
  • 0

Encurtar URL para o microblog Twitter.


daniel guanambi

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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).

Edited by daniel guanambi
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...