Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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"](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"](http://quatrorodas.com.br/imagens/hexa2.jpg) />
alguem me dá uma luz?
Obrigado!
Era quase isso... mas ele ainda está mandando um pouco de texto... antes do <img, beleza, mas depois nao vai
<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>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);
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" />
)
)só nao entendi como fazer pra pegar somente 1.
deveria ser somente <?=print_r($imagens[0])?>
A função preg_match_all como o nome diz pega tudo, para pegar apenas um use a função preg_match.
tava gulosa mesmo rs.. eu fiz na pressa
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>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.
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!
<?php
$texto = 'veja o texto
Será impressa na tela a imagem