Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

..GBEST..

acentuação twitter

Recommended Posts

eu uso o seguinte código pra visualizar meus postrs do twitter :

 

$url = 'http://twitter.com/statuses/user_timeline/redeorkontro.rss?count=5';  
 $xml = simplexml_load_file($url); 
 
foreach($xml->channel->item as $node){  
     
    printf('<div><a href="%s" class="twitter">%s</a></div>',  
            $node->link,  
           $node->title  
     );      
}
Acentuação,esquece.. fica com caracteres estranhos..

procurei na net,e oque todo mundo manda fazer é acessar o rss sem www,já fiz e não saiu,nao adiantou nada..

alguem tem outra solução ?

eu tentei colocar uma função "is_utf8" mas naão retomou nada nos posts.. a função eu achei no php manual..

 

 

aproveitando o topico já criado..

alguem sabe porque só consigo acessar os posts do twitter pelo localhost ?

quando upo nao funciona :s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também aconteceu isso comigo, mas eu utilizei a API do Twitter através de uma classe chamada "Twitter Class", ela está, entre outras, indicada na pagina de documentação da API do Twitter como uma classe oficial para PHP.

Você pode fazer sua própria classe para acessar o Twitter, mas você teria que fazer toda a a comunicação através da biblioteca cURL e manipular todo o script q você receberia, seja ele em XML ou JSON e etc. É muito mas fácil utilizar uma classe onde já está tudo bem manipulado e todo em OO, os métodos estão bem intuitivos e retornam pra você arrays, ficando bem mais fácil para inseri-los no HTML.

Voce pode acessar as classes para php indicadas pelo Twitter através desse link:

http://dev.twitter.c...s/libraries#php

Eu utilizei essa classe para inserir na minha pagina pessoal, que ainda esta em contrução.

http://julihermes.com.br

 

Mas enfim, vamos ao que interessa, eu resolvi esse problema com uma linha no HTML. Dentro do head você digita:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

o que eu fiz foi mudar a codificação da pagina para Latin-1, alterando o charset para iso-8859-1.

 

já para o problema de não aparecer quando você sobe pra web, no meu caso, o que poderia acontecer era de o servidor não ter instalado a biblioteca cURL, impossibilitando a comunicação com o Twitter. Mas no seu caso acho q o mais provável é o que o andré falou:

Pode ser que o servidor não permita o acesso a URL's externas.

 

É isso ai, espero ter ajudado. Valeu!!!Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Julihermes Carlos

não consegui acentuar de jeito nenhum,todos os scripts ficam com caracteres esquisitos..

 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
header("Content-Type: text/html; charset=ISO-8859-1",true) ;
já coloquei isso e nada..

 

e eu não consegui colocar online,aparece o seguinte erro :

 

PHP Warning: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: URL file-access is disabled in the server configuration in E:\home\redeorkont\Web\Orkontro\paginas\twitter.php on line 29

PHP Warning: simplexml_load_file(http://twitter.com/statuses/user_timeline/redeorkontro.rss?count=5) [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: failed to open stream: no suitable wrapper could be found in E:\home\redeorkont\Web\Orkontro\paginas\twitter.php on line 29

PHP Warning: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: I/O warning : failed to load external entity "http://twitter.com/statuses/user_timeline/redeorkontro.rss?count=5" in E:\home\redeorkont\Web\Orkontro\paginas\twitter.php on line 29

PHP Warning: Invalid argument supplied for foreach() in E:\home\redeorkont\Web\Orkontro\paginas\twitter.php on line 30

 

não to conseguindo habilitar esas funções de jeito nenhum...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quanto aos caracteres, coloque isso na variavel:

 

utf8_decode($text)

Quanto as msg de erro, tento fazer o q t indiquei, cria um arquivo .htaccess e coloque os parametros, e joga no diretorio do servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

php_value allow_url_fopen on
php_value allow_url_include 1
já coloquei isso no htaccess;

 

não dá pra colocar função na resposta do rss,porque pra puxar de lá eu pego com %s

se quiser eu posto o codigo complet.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$url = 'http://twitter.com/statuses/user_timeline/redeorkontro.rss?count=5';  
$xml = simplexml_load_file($url); 
 
foreach($xml->channel->item as $node){  
     
    printf('<div><a href="%s" class="twitter">%s</a></div>',  
           $node->link,  
           utf8_decode($node->title) 
     );
}

Com utf8_decode funciona.

Testei aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, sobre o questão do servidor, aconselho você entrar em contato com o suporte dele pra verificar sobre as permissões.

Pelo erro que você postou, parece ser isso mesmo!!

 

Valeu!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara tenta usar essa funcao do Joao Batista

/**
 * Recupera postagens de usuários do Twitter
 * @param string $user O nome do usuário
 * @return &array Matriz contendo as postagens do membro
 */
function &getTwitterPostsByUser( $user ){
 $arr = array();
 $cur = null;
 $xml = new XMLReader( );
 
 if ( $xml->open( sprintf( 'http://twitter.com/statuses/user_timeline/%s.xml' , $user ) ) ){
 while ( $xml->read() ){
 if ( $xml->nodeType == XMLReader::ELEMENT ){
 $node = $xml->localName;
 
 if ( $xml->read() ){
 switch ( $node ){
 case 'created_at' :
 $cur = strtotime( $xml->value );
 break;
 case 'text' :
 $arr[ $cur ] = preg_replace( '/@([a-zA-Z_]+)/' , '<a href="http://twitter.com/$1">@$1</a>' , $xml->value );
 break;
 }
 }
 }
 }
 
 $xml->close();
 
 ksort( $arr );
 } else
 throw new Exception( 'Não foi possível abrir o documento.' );
 
 return $arr;
}
date_default_timezone_set( 'America/Sao_Paulo' );

foreach ( getTwitterPostsByUser( 'joseserra_' ) as $created_at => $text )
 printf( '(%s): %s<br />%s' , date( 'd/m/Y' , $created_at ) , $text , PHP_EOL );

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.