PHP get_content

Status
Niet open voor verdere reacties.

Facepalm

Gebruiker
Lid geworden
11 aug 2011
Berichten
36
Dag mensen,

Mijn bedoeling is om voor mezelf een kleine nieuws-site te maken. Nu is de bedoeling dat als er nieuw nieuws geplaatst is op bijvoorbeeld www.nu.nl dat dit meteen op mijn pagina verschijnt. Is dit het beste te doen met php_get_content? En heeft er iemand dan ook een klein voorbeeldje?


Gr,
FP
 
Ik weet niet precies wat je wilt doen, maar je weet dat het niet toegestaan is om nieuws letterlijk van nu.nl over te nemen: http://www.nu.nl/copyright.html?

De inhoud van deze website mag alleen worden gebruikt voor persoonlijk gebruik. Zonder voorafgaande schriftelijke toestemming van Sanoma Digital is het onder meer niet toegestaan de inhoud van deze website, of enig onderdeel daarvan, door te sturen, te verspreiden of tegen vergoeding beschikbaar te stellen aan derden, behalve voor zover strikt noodzakelijk is voor het gebruiken van deze website.
 
Toch vreemd dat ze hier dan niet duidelijk over zijn. Op de pagina www.nu.nl/rss.html staat het volgende:

Dynamische RSS feeds
Als webmaster kunt u via onderstaande veld een eigen rss-feed creeren. Heeft u bijvoorbeeld een website over Maxima, dan vult u in onderstaande veld Maxima in en creeert u een specifieke rss-feed die u op uw website kunt gebruiken.
 
In de RSS feed staan geen volledige berichten, alleen de eerste zin (of twee) en dan een link naar het artikel op nu.nl
 
Nu ben ik al zover dat ie een bepaalde content pakt d.m.v. file_get_contents en gebruik te maken van regex en preg_match:

PHP:
<?php 
$data = file_get_contents('http://www.nu.nl/');
$regex = '/<h3 class="hdtitle">(.+?)</h3>/';
preg_match($regex,$data,$match);
var_dump($match);
echo $match[1];
?>

Nu wil ik, zoals je ziet, alleen de content tussen de <h3></h3> krijgen op mijn pagina. Nu krijg ik dit als output:
Code:
Warning: preg_match() [function.preg-match]: Unknown modifier 'h' in C:\Users\Facepalm\Desktop\usbw\root\parser.php on line 4
NULL

Waar zit hier de fout? Is het wel mogelijk om speciale tekens te gebruiken zoals < = "" > / etc? Heeft iemand een oplossing hiervoor?

Groetjes,
Facepalm


ps: ik pak nu.nl even als voorbeeldje :)
 
PHP:
<?php 
$data = file_get_contents('http://www.nu.nl/');
$regex = '/$<h3 class="hdtitle">(.+?)</h3>^/';
preg_match($regex,$data,$match);
var_dump($match);
echo $match[1];
?>
 
Bedankt, ik zie dat je $ en ^ hebt toegevoegd. Wat doet het? En uw voorbeeld werkt niet!

Greetz
 
haha ik maakte een foutje ja.
dus:
PHP:
<?php 
$data = file_get_contents('http://www.nu.nl/');
$regex = '/^<h3 class="hdtitle">(.+?)</h3>$/';
preg_match($regex,$data,$match);
var_dump($match);
echo $match[1];
?>
ik hoop dat deze wel werkt.
$ betekent dat hij op > moet eindigen en ^betekent dat hij bij een < moet beginnen.
 
Zoals hij nu is betekent het volgens mij dat de inhoud van $data moet beginnen met een "<h3 class="hdtitle>"
 
Klopt maar als de inhoud van data daar dus niet aan voldoen (en dat doet ie niet want hij zal nu met <html> beginnen) dan heb je geen resultaat
 
Nu krijg ik weer als resultaat:

Code:
Warning: preg_match() [function.preg-match]: Unknown modifier 'h' in C:\Users\Jeroen\Desktop\usbw\root\awef\tes2.php on line 4
NULL
 
Laatst bewerkt:
Zoals in mijn cheatsheet staat aangegeven dien je de "<", ">" en "/" te escapen.

Probeer dit eens:
PHP:
$regexp  = '/^\<h3 class="hdtitle"\>(.+?)\<\/h3\>$';
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan