Hoi,

Ik ben bezig met het schrijven van een script om een rss feed uit te lezen op mijn website. Het probleem is alleen dat ik geen gebruik kan maken van fopen (); omdat ik volgens de instellingen in mijn php.ini geen remote files kan openen.

Nu schijnt er een javascript alternatief te zijn om toch remote files te openen. Weet iemand misschien hoe dit werkt?

Alvast bedankt!
[php]domdocument.load[/php] kan ook van andere server laden. Weet alleen eigenlijk niet of dat werkt als safe mode aanstaat.
Javascript oplossingen zijn niet oké.
Ben maar weer aan het experimenteren gegaan. De uitkomst van deze experimenten zijn dat zowel file_get_contents(); als de dom methode beiden geblokkeerd zijn in de php.ini.

Er moet toch een manier zijn?!
Nope, ook niet. Maar ik ben nu bezig met CURL. Gebruik het volgende script:


if (function_exists('curl_init')) {
		   // initialize a new curl resource
		   $ch = curl_init();
		
		   // set the url to fetch
		   curl_setopt($ch, CURLOPT_URL, $feed_link);
		
		   // don't give me the headers just the content
		   curl_setopt($ch, CURLOPT_HEADER, 1);
		
		   // return the value instead of printing the response to browser
		   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		
		   // use a user agent to mimic a browser
		   curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
		
		   $file_feed = curl_exec($ch);
		
		   // remember to always close the session and free all resources
		   curl_close($ch);
		} else {
		   // curl library is not installed so we better use something else
		} 
	
	echo($file_feed);


Probleem is dat hij alle tags verwijderd. Zodat ik met preg_match geen titles, links, PubDates etc kan verkrijgen.

Hoet goede nieuws is wel dat hij 'm wel kan openen. Iemand oplossing om ook tags te laten zien?!
"Nope, ook niet."
Ehm.. Hebben we het over XML of een gewone html pagina?
Geef eens een link van de betreffende RSS feed.
Ik bedoel dat mijn hosting die simplexml functie niet accepteerd. Het is een twitter rss file: http://twitter.com/statuses/user_timeline/39709745.rss.

Maar ik heb het probleem opgelost door
$ch2 = curl_copy_handle($ch);
	$file_feed = curl_exec($ch2);

toe te voegen.

Ik heb nu de inhoud van het bestand in $file_feed. Nu probeer ik de items eruit te halen met preg_match();

$get_items = preg_match_all("/<item>(.*)<\/item>/", $file_feed, $matches);
echo $matches['0'];

Het resultaat is "Array". Doe ik iets verkeerd?
Als hij Array als resultaat geeft, zit er nog een array in [0]

Doe eens
echo '<pre>';
print_r $matches;
echo '</pre>';
Het resultaat is:

Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
        )

)
Je arrays zijn dus leeg, zit er dus een fout in the preg_match regex.

De goede regex =

#<item>(.*)<\/\item>#

Dat gerunt op <item>blabla</item> geeft als result:
Array
(
[0] => Array
(
[0] => <item>blabla</item>
)

[1] => Array
(
[0] => blabla
)

Dus dan echo je $var[1][0]

Reageren