verificação de link
Vamos ver se alguém pode me ajudar.
tenho uma class que peguei aqui mesmo no phpbrasil para capturar rss. Até ai tudo bem a class funciona perfeitamente, fiz um ajuste nela nada de mais.
Mas casualmente hoje o site de onde pego as notícias estava com os serviços indiponíveis, causando um transtorno o site ficando fora também, pois não tem nenhuma verificação antes para ver se a URL está disponível.
Bom como a url é um arquivo XML tentei utilizar a função is_file mas ela não funciona enfim não sei como efetuar uma verificação no endereço que eu pego os rss para que não cause nenhum erro no site.
Abaixo sego o código
<?php
function untag($string, $tag){
$tmpval = array();
$preg = "|<$tag>(.*?)</$tag>|s";
preg_match_all($preg, $string, $tags);
foreach ($tags[1] as $tmpcont){
$tmpval[] = $tmpcont;
}
return $tmpval;
}
$feed = 'http://www.tjrs.jus.br/site_php/noticias/news_rss.php';
ini_set('allow_url_fopen', true);
$fp = fopen($feed, 'r');
$xml = '';
while (!feof($fp)) {
$xml .= fread($fp, 128);
}
fclose($fp);
$items = untag($xml, 'item');
$html = '<p>';
//foreach ($items as $item) {
//for($i=0;$i <= 5;$i++){
$count = 0;
foreach ($items as $item) {
if($count <= 4){
$title = untag($item, 'title');
$descricao = untag($item, 'description');
$link = untag($item, 'link');
$html .= '<a href="' . $link[0] . '">' . $title[0] . "</a><br />\n";
}
$count = $count + 1;
}
$html .= '</p>';
echo $html;
?>
tenho uma class que peguei aqui mesmo no phpbrasil para capturar rss. Até ai tudo bem a class funciona perfeitamente, fiz um ajuste nela nada de mais.
Mas casualmente hoje o site de onde pego as notícias estava com os serviços indiponíveis, causando um transtorno o site ficando fora também, pois não tem nenhuma verificação antes para ver se a URL está disponível.
Bom como a url é um arquivo XML tentei utilizar a função is_file mas ela não funciona enfim não sei como efetuar uma verificação no endereço que eu pego os rss para que não cause nenhum erro no site.
Abaixo sego o código
<?php
function untag($string, $tag){
$tmpval = array();
$preg = "|<$tag>(.*?)</$tag>|s";
preg_match_all($preg, $string, $tags);
foreach ($tags[1] as $tmpcont){
$tmpval[] = $tmpcont;
}
return $tmpval;
}
$feed = 'http://www.tjrs.jus.br/site_php/noticias/news_rss.php';
ini_set('allow_url_fopen', true);
$fp = fopen($feed, 'r');
$xml = '';
while (!feof($fp)) {
$xml .= fread($fp, 128);
}
fclose($fp);
$items = untag($xml, 'item');
$html = '<p>';
//foreach ($items as $item) {
//for($i=0;$i <= 5;$i++){
$count = 0;
foreach ($items as $item) {
if($count <= 4){
$title = untag($item, 'title');
$descricao = untag($item, 'description');
$link = untag($item, 'link');
$html .= '<a href="' . $link[0] . '">' . $title[0] . "</a><br />\n";
}
$count = $count + 1;
}
$html .= '</p>';
echo $html;
?>
comentários (0)
suspender
Lista de Respostas:
09/09/2009 12:05pm
(~15 anos atrás)
(~15 anos atrás)
15/09/2009 2:25pm
(~15 anos atrás)
(~15 anos atrás)
Você pode encontrar algum padrão na resposta que obtém do servidor e verificar se o seu padrao bate com o que vc obteve.
Se vc sabe, por ex, que a linha 3 do arquivo XML é assim:
"<content>"
E você obteu isso:
""
É por que deu errado.
Daí você trata!
Se vc sabe, por ex, que a linha 3 do arquivo XML é assim:
"<content>"
E você obteu isso:
""
É por que deu errado.
Daí você trata!