goedemiddag

ik loop tegen het volgende aan.
ik probeer de inhoud te krijgen van dastelefonbuch, door middel van

			$site = file_get_contents ('http://www1.dastelefonbuch.de/?la=en&bi=131&kw=Architekt&pc=02&taoid=00001010000012210102211222200001012201&ort_ok=1&vert_ok=1&buab=344700&cx=226547&cy=10785&lat=51.050949&lon=13.733657&cifav=0&mdest=sec1.www1&cmd=detail&recSelected=0&searchid=13511_1522_20101022120020949_42190154783069_0122&sp=51&aktion=38');
			echo $site;

ik weet het, lange link, maar dat werkt niet want dan krijg je failed to openstream.

maar op die manier werkt detelefoongids.nl weer wel

			$site = file_get_contents ('http://www.detelefoongids.nl/zoeken/-/w-architect');
			echo $site;


hoe komt dit?
De server van dastelefonbuch.de geeft een internal server error zodra je hem met PHP probeert te benaderen. Wellicht dat de server zo geconfigureerd is dat deze requests niet toegestaan worden?
zijn er dan nog andere manieren om dus een website uit te lezen?
VRaagje: Hoe "weet" de server van dastelefonbuch.de dat je hem met PHP benadert ? Het is toch gewoon een http request ?
Maar wel een request waar data als browserinformatie e.d. ontbreekt. Ik weet het niet zeker, maar volgens mij kun je prima achterhalen wat voor soort http request er is gedaan.
Ze kunnen veel controleren aan headers etc. Dit is wel te spoofen maar hoe meer hun controleren hoe lastiger het voor jou is.

Daarnaast moet je toestemming hebben om dit soort info van hun website te halen. Als je die hebt kunnen ze je ook wel helpen.
@Blanche: In het request staat normaliter browser info en dat kan je checken.
Ik heb niet direct een oplossing voor TS maar ik kan de vanuit linux gewoon een wget doen op die site met een pagina als respons, geen error. Ik kwam op google ook het volgende tegen voor TS: For streaming with file_get_contents: Do you have defined in php.ini: allow_url_fopen ??
@john ik denk het wel anders zou de telefoonigds ook niet werken lijkt mij?
Teun Hesseling op 22/10/2010 14:18:11

@john ik denk het wel anders zou de telefoonigds ook niet werken lijkt mij?
@Teun, je reactie is me niet helemaal duidelijk.
Anders curl gebruiken, je kan dat veel uitgebreider configureren dan file_get_contents. Met curl kan je CURLOPT_USERAGENT meegeven.
[edit]
check deze link, uitgebreid voorbeeld:
http://www.php.net/manual/en/function.curl-setopt-array.php

Teun, ik krijg het vermoeden dat je illegaal bezig bent.
Wat is je doel?
ik weet dat het illegaal is om informatie te halen van een website, maar dit is alleen voor eigen belang zodat ik meer leer van de mogelijkheden die php heeft, ik ga er verder niks mee doen. gewoon een persoonlijk projectje om meer van php te leren. hoop dat dit niet zo heel erg is? zo wel dan gaat het gelijk de prullenbak in. maar het leek mij wel interessant.

Reageren