RSS feed uitlezen
Sander1993 - 05/01/2009 17:47
PHP interesse
hey,
ik wou een rss-feed uitlezen, dus ben ik een beetje bezig met tutorials over simpleXML.
nu typ ik dit:
<?php
// The file test.xml contains an XML document with a root element
// and at least an element /[root]/title.
if (file_exists('http://www.guildwars.com/newsarchive/rss/news-current.xml')) {
$xml = simplexml_load_file('http://www.guildwars.com/newsarchive/rss/news-current.xml');
print_r($xml);
} else {
exit('Failed to open http://www.guildwars.com/newsarchive/rss/news-current.xml');
}
?>
<?php
// The file test.xml contains an XML document with a root element
// and at least an element /[root]/title.
if ( file_exists ( 'http://www.guildwars.com/newsarchive/rss/news-current.xml' ) ) { $xml = simplexml_load_file( 'http://www.guildwars.com/newsarchive/rss/news-current.xml' ) ;
} else {
exit ( 'Failed to open http://www.guildwars.com/newsarchive/rss/news-current.xml' ) ; }
?>
komt van php.net
waarmee ik dit bestand wou openen http://www.guil...urrent.xml maar het werkt niet.
het geeft weer: Failed to open http://www.guil...urrent.xml
komt dat omdat de rss feed niet van binnen mijn host komt of ergens anders door? en hoe los ik dit op?
8 antwoorden
Gesponsorde links
Sander1993 - 07/01/2009 19:29 (laatste wijziging 07/01/2009 19:52)
PHP interesse
oke dan, het ging niet echt om het checken maar meer om het uitlezen, want dit werkt ook niet:
<?php
$xml = simplexml_load_file('http://www.guildwars.com/newsarchive/rss/news-current.xml');
print_r($xml);
?>
<?php
$xml = simplexml_load_file( 'http://www.guildwars.com/newsarchive/rss/news-current.xml' ) ;
?>
edit :
ik denk dat ik hier dichterbij mee kom:
<?php
fsockopen('guildwars.com',80,$errno,$errstr);
if (!$fp) {
print "$errstr ($errno)<br />\n";
} else {
$cmd = "GET http://www.guildwars.com/newsarchive/rss/news-current.xml HTTP/1.1\r\n";
$cmd .= "Host: phpnet.us\r\n";
$cmd .= "Connection: Close\r\n\r\n";
fwrite($fp,$cmd);
$xml = fread($fp, 4096);
print nl2br($xml);
}
?>
<?php
fsockopen ( 'guildwars.com' , 80 , $errno , $errstr ) ; if ( ! $fp ) {
print "$errstr ($errno )<br />\n " ; } else {
$cmd = "GET http://www.guildwars.com/newsarchive/rss/news-current.xml HTTP/1.1\r \n " ;
$cmd .= "Host: phpnet.us\r \n " ;
$cmd .= "Connection: Close\r \n \r \n " ;
}
?>
maar hij zegt succes (0), maar dat is niet de bedoeling...
djb - 07/01/2009 21:14
PHP beginner
met een beetje klooie ben ik tot dit gekomen:
function Parse($nieuwsfeed){
$xml_feed = $nieuwsfeed;
$xml_praser = xml_parser_create();
xml_parse_into_struct($xml_praser,$xml_feed,$xml_sleutel,$xml_index);
xml_parser_free($xml_praser);
for($i = 0; !empty($xml_index['TITLE'][$i]); $i++){
if($i == 0){
echo '<b>RSS feed afkomstig van:<a href="'.$xml_sleutel[$xml_index['LINK'][$i]]['value'].'">'.$xml_sleutel[$xml_index['TITLE'][$i]]['value'].'</a></b><br /><br />';
}else{
$datum = date("Y-m-d H:i", strtotime($xml_sleutel[$xml_index['PUBDATE'][$i]]['value']));
echo '['.$datum.'] <a href="'.$xml_sleutel[$xml_index['LINK'][$i]]['value'].'">'.$xml_sleutel[$xml_index['TITLE'][$i]]['value'].'</a><br />';
}
}
}
$file = file("http://www.guildwars.com/newsarchive/rss/news-current.xml");
$file2 = "";
foreach ($file as $file_deel) {
$file2 .= $file_deel;
}
Parse($file2);
function Parse( $nieuwsfeed ) {
$xml_feed = $nieuwsfeed ;
for ( $i = 0 ; ! empty ( $xml_index [ 'TITLE' ] [ $i ] ) ; $i ++ ) { if ( $i == 0 ) {
echo '<b>RSS feed afkomstig van:<a href="' . $xml_sleutel [ $xml_index [ 'LINK' ] [ $i ] ] [ 'value' ] . '">' . $xml_sleutel [ $xml_index [ 'TITLE' ] [ $i ] ] [ 'value' ] . '</a></b><br /><br />' ; } else {
$datum = date ( "Y-m-d H:i" , strtotime ( $xml_sleutel [ $xml_index [ 'PUBDATE' ] [ $i ] ] [ 'value' ] ) ) ; echo '[' . $datum . '] <a href="' . $xml_sleutel [ $xml_index [ 'LINK' ] [ $i ] ] [ 'value' ] . '">' . $xml_sleutel [ $xml_index [ 'TITLE' ] [ $i ] ] [ 'value' ] . '</a><br />' ; }
}
}
$file = file ( "http://www.guildwars.com/newsarchive/rss/news-current.xml" ) ; $file2 = "" ;
foreach ( $file as $file_deel ) {
$file2 .= $file_deel ;
}
Parse( $file2 ) ;
Nu laat hij keurig de titels zien.
De functie Parse komt van deze pagina:
http://www.site...amp;id=850
En heb ik 1 regel aangepast.
$file2 bevat de RSS feed.
Bij mij werkt dit goed en is getest.
Groetjes jeroen
Sander1993 - 07/01/2009 21:18
PHP interesse
wtf, bij mij werkt ie niet
Sander1993 - 07/01/2009 21:37
PHP interesse
niks, dat is t m nou juist, mijn hosting is echt bagger, hij weergeeft geen errors
djb - 07/01/2009 21:49
PHP beginner
jaah, ik test het ook localhost,, dus ik heb alle rechten zeg maar, en kan alles goed instellen.
Zit je toevallig bij one.com ?:)
Want daar zit ik ook,, kan ik hem ff daar teste
Sander1993 - 08/01/2009 12:22 (laatste wijziging 09/01/2009 20:06)
PHP interesse
nee ik zit bij hosting2go. ik ben niet zo weg van deze hosting, qua onderseuning etc.. maar dus niet bij one. btw. weet misschien iemand een host, die ssl, php, perl, en coldfusion ondersteunt?
edit:
het gaat er juist om hoe ik een externe feed open. dat is het probleem.
Gesponsorde links
Dit onderwerp is gesloten .