Ir para conteúdo
View in the app

A better way to browse. Learn more.

Portal do Host

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Script Que Leia, Interprete E Converta Um Feed

Featured Replies

Postado

Olá pessoal,

Bom, estava precisando de um código parar puxar o feed, lesse o conteúdo e transforma-se em links (titulo). Encontrei o código, porém ao adicionar ele a minha página simplesmente ficou muito lento (muito mesmo!). Gostaria de saber se alguém possui um código similar a isso ou se alguém poderia me ajudar a otimizar esse código para que ele não fique tão pesado?


<?php

ini_set('allow_url_fopen', 1);

ini_set('allow_url_include', 1);


$feed = 'http://www.exemplo.com.br/?feed=rss2';

$rss = simplexml_load_file($feed);

$limit = 8;

$count = 0;


if($rss){

foreach ($rss->channel->item as $item){

printf('&raquo; <a href="%s" title="%s" >%s</a><br />',$item->link,$item->title,$item->title);

$count++;

if($count == $limit) break;

}}else{

echo 'Não foi possível acessar o blog.';

}

?>

Ps: Foi testado em localhost

Grato desde já.


Postado

Eu uso assim: (para wordpress)



<?

define('WP_USE_THEMES', false);

require_once('blog/wp-load.php');

query_posts('showposts=1&cat=-30,-31');

?>

<?php function posted_on() {

printf( __( '<span class="sep">postado </span><span class="sep"> no dia </span><time class="entry-date" datetime="%3$s" pubdate>%4$s</time> as %2$s'),

esc_url( get_permalink() ),

esc_attr( get_the_time() ),

esc_attr( get_the_date( 'c' ) ),

esc_html( get_the_date() ),

esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),

esc_attr( sprintf( __( 'View all posts by %s'), get_the_author() ) ),

esc_html( get_the_author() )


);

} ?>

<?php if ( have_posts() ) : ?>

<?php while (have_posts()): the_post(); ?>

Ultimo post do nosso blog: <strong><a href="<?php the_permalink(); ?>" style="color:#333;"><?php the_title(); ?></a></strong> <small><em style="font-size:11px">&nbsp;&nbsp;<?php posted_on(); ?></em></small>

<?php endwhile; else: ?>

<p>Não existe nenhum post.</p>

<?php endif; ?>

<?php wp_reset_query();?>


Postado
  • Autor

Então, no caso esse seria para WordPress, aqui o site é independente com painel administrativo próprio.


Postado

Então você teria que estudar o xml. Se postar ele aqui em anexo posso tentar fazer pra você


Postado

Olá pessoal,

Bom, estava precisando de um código parar puxar o feed, lesse o conteúdo e transforma-se em links (titulo). Encontrei o código, porém ao adicionar ele a minha página simplesmente ficou muito lento (muito mesmo!). Gostaria de saber se alguém possui um código similar a isso ou se alguém poderia me ajudar a otimizar esse código para que ele não fique tão pesado?


<?php

ini_set('allow_url_fopen', 1);

ini_set('allow_url_include', 1);


$feed = 'http://www.exemplo.com.br/?feed=rss2';

$rss = simplexml_load_file($feed);

$limit = 8;

$count = 0;


if($rss){

foreach ($rss->channel->item as $item){

printf('&raquo; <a href="%s" title="%s" >%s</a><br />',$item->link,$item->title,$item->title);

$count++;

if($count == $limit) break;

}}else{

echo 'Não foi possível acessar o blog.';

}

?>
Ps: Foi testado em localhost Grato desde já.
1a Consideração: Ao rodar um script desse em localhost, você tem uma certa lentidão característica devido ao Ping. Isso é normal e até esperado. É a mesma coisa de você utilizar um Webmail em localhost (como o RoundCube, por exemplo). 2a Consideração, não faz sentido você usar a foreach se você tem um número finito de passos a serem feitos. A função while também é lenta, logo, a for se sai bem melhor (dado que ela já é mais rápida que a foreach). Sugestão de código:

for($cont = 0; $count <= $limite; $count++){

$item = current($rss->channel->item);

.....

next($rss->channel->item);

}

3a Consideração: Print_f é uma função bastante lenta devido a sua peculiaridade de interpretação do conteúdo, que quase nunca vale a pena utilizar a não ser para desenvolvimento do ambiente de testes(acredito que ela só sirva mesmo para testar saídas do tipo retrovisor de regex), logo, troque a respectiva linha por:

print '&raquo; <a href="'.$item['link'].'" title="'.$item['title'].'" >'.$item['title'].'</a><br />';


Postado

A melhor solução para isso é fazer cache o Feed, para o seu servidor não ter que fazer uma requisição ao outro servidor toda vez que alguem visitar o seu site (aqui que está o gargalo).

Eu faria um cache desse feed que só atualizaria a cada hora por exemplo. Entra em contato por MP que a gente resolve isso rapidinho :)


Visitante
Este tópico está impedido de receber novos posts.

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Informação Importante

Concorda com os nossos termos?

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.