wilson 0 Denunciar post Postado Janeiro 5, 2012 Olá Pessoal estou fazendo um leitor de RSS de noticias da quatro rodas, entretanto, eles nao mostram imagem no rss. gostaria de saber se existe uma forma de, por expressoes regulares identificar o que é <img src="".... veja o texto Modelo conceitual tem espaço para oito pessoas<p>Além de mostrar o novo EcoSport, o Salão de Nova Déli traz outras novidades interessantes para o resto do mundo. A Hyundai aproveitou o evento para exibir a Hexa Space MPV, carro-conceito voltado para famílias que vivem em mercados emergentes.</p><img src="http://quatrorodas.com.br/imagens/hexa2.jpg" /><p>A grande novidade do conceito está em seu interior, que tem oito lugares dispostos de forma que podem ser mudados de lugar e se encaixam como um quebra-cabeças. O assento central dianteiro pode ser completamente rebatido no assoalho, assim como a ... teria que tirar isso: <img src="http://quatrorodas.com.br/imagens/hexa2.jpg" /> alguem me dá uma luz? Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Peperaio 20 Denunciar post Postado Janeiro 5, 2012 <?php $texto = 'veja o texto Modelo conceitual tem espaço para oito pessoas<p>Além de mostrar o novo EcoSport, o Salão de Nova Déli traz outras novidades interessantes para o resto do mundo. A Hyundai aproveitou o evento para exibir a Hexa Space MPV, carro-conceito voltado para famílias que vivem em mercados emergentes.</p><img src="http://quatrorodas.com.br/imagens/hexa2.jpg" /><p>A grande novidade do conceito está em seu interior, que tem oito lugares dispostos de forma que podem ser mudados de lugar e se encaixam como um quebra-cabeças. O assento central dianteiro pode ser completamente rebatido no assoalho, assim como a ...'; preg_match_all("/<img.*\/>/",$texto,$imagens); print_r($imagens); ?> Será impressa na tela a imagem Compartilhar este post Link para o post Compartilhar em outros sites
wilson 0 Denunciar post Postado Janeiro 5, 2012 Obrigado! Era quase isso... mas ele ainda está mandando um pouco de texto... antes do <img, beleza, mas depois nao vai Clique aqui pra ver o result <table> <?php class TotalFeed { function ler_news() { $file = simplexml_load_file('http://quatrorodas.abril.com.br/noticias/rss.xml'); foreach($file->channel as $res){ foreach($res->item as $s){ ?> <tr> <td style="padding-left:22px; padding-right:43px; padding-left:65px"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="28%" align="left" style="padding-right:5px"> <? preg_match_all("/<img.*\/>/",($s->description),$imagens); ?> <img src="<?=print_r($imagens)?>" width="75" height="55" />'; </td> <td width="72%" align="left" valign="top" style="padding-left:6px; border-left:solid 2px #333" class="texto_vermelho_news"><span class="data_cinza"><? echo substr(utf8_decode($s->pubdate),5,12); ?></span><br /> <br /> <? echo "• <a href=".$s->link." class='texto_cinza' target='_blank'>".utf8_decode($s->title)."</a><br>"; ?></td> </tr> </table> </td> </tr> <tr> <td style="padding-left:22px; padding-right:43px; padding-left:65px"> </td> </tr> <? }}}} $corpo = new TotalFeed(); $corpo->ler_news(); ?> </table> Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Janeiro 5, 2012 Essa ER que o Lucas postou está errada mesmo, ela está muito "gulosa". Usando o .* irá simplesmente pegar TUDO o que vier dali em diante. Tente assim: preg_match_all('/<img[^>]+>/i', $s->description, $imagens); Compartilhar este post Link para o post Compartilhar em outros sites
wilson 0 Denunciar post Postado Janeiro 5, 2012 Amigo Leo Ficou perfeito. Ele está gerando um array das fotos... Array ( [0] => Array ( [0] => <img src="http://quatrorodas.com.br/imagens/stradafena.jpg" /> [1] => <img src="http://quatrorodas.com.br/imagens/ecofena.jpg" /> ) ) 1 só nao entendi como fazer pra pegar somente 1. deveria ser somente <?=print_r($imagens[0])?> Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Janeiro 5, 2012 A função preg_match_all como o nome diz pega tudo, para pegar apenas um use a função preg_match. Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Peperaio 20 Denunciar post Postado Janeiro 6, 2012 tava gulosa mesmo rs.. eu fiz na pressa Compartilhar este post Link para o post Compartilhar em outros sites
wilson 0 Denunciar post Postado Janeiro 6, 2012 Vou dar minha contribuição final... pra mostrar as noticias da Quatro Rodas COM FOTO, é só copiar este codigo abaixo: <table > <?php class TotalFeed { function ler_news() { $file = simplexml_load_file('http://quatrorodas.abril.com.br/noticias/rss.xml'); foreach($file->channel as $res){ $x=0; foreach($res->item as $s){ $x++; if($x==6){ break; } preg_match_all('/<img[^>]+>/i', $s->description, $imagens); if($imagens[0][0] != ''){ ?> <tr> <td align="left" style="padding-left:22px; padding-right:43px; padding-left:65px"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="28%" align="left" style="padding-right:5px"> <? preg_match_all('/<img[^>]+>/i', $s->description, $imagens); ?> <? echo substr($imagens[0][0],0,-3)." width=85px />";?> // pega somente a primeira foto do Array </td> <td width="72%" align="left" valign="top" style="padding-left:6px; border-left:solid 2px #333" class="texto_vermelho_news"><span class="data_cinza"><? echo substr($s->pubDate,5,12); ?></span><br /> <br /> <? echo "<a href=".$s->link." class='texto_vermelho_news' target='_blank'>".$s->title."</a><br>"; ?></td> </tr> </table> </td> </tr> <tr> <td style="padding-left:22px; padding-right:43px; padding-left:65px"> </td> </tr> <? }}}}} $corpo = new TotalFeed(); $corpo->ler_news(); ?> </table> Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Peperaio 20 Denunciar post Postado Janeiro 6, 2012 Muito bom Wilson, muitos usuários depois de serem ajudados simplesmente se evadem do fórum, sem dar alguma satisfação. Você ainda postou a solução final, para alguém que precisar futuramente. Compartilhar este post Link para o post Compartilhar em outros sites
wilson 0 Denunciar post Postado Janeiro 9, 2012 Olá Lucas... É o mínimo que posso fazer. Tenho 12 anos de trabalho na área e cheguei onde estou com a ajuda do fórum... fiquei meio inativo porque tenho trabalhado menos com programação e aprendi bastante, de modo que não preciso apelar muito pra este fórum. Espero que o pessoal possa utilizar este código! Compartilhar este post Link para o post Compartilhar em outros sites