Sjekke link med php

adeneo

Medlem
Du må begynne med å se på kildekoden til VG, og se om det du søker etter eksisterer, og om det er eventuelle feil osv.

Jeg har lagt hele kildekoden slik den ser ut når den er hentet med cURL her -> Edit fiddle - JSFiddle

Som du ser er den fullstendig ugyldig, helt fra første linje hvor serveren til VG har en feil som dytter ut DOCTYPE to ganger, slik at å forsøke å parse den HTML'en med PHP's DOMDocument er sannsynligvis bare å glemme, og da må du over på regex.

Men, når du ser på kildekoden vil du se at lenkene dine ikke eksisterer, de ligger i noe merkelig JSON greier i en data attributt, men lenken til JSON resultatet ligger rett der, slik at man kan jo hente det direkte, prøv noe sånt

PHP:
$url = 'http://www.vg.no/forbruker/mat-og-drikke/mat/?format=json';  

$curl = curl_init($url);  
curl_setopt($curl,  CURLOPT_RETURNTRANSFER, TRUE);  
$response = curl_exec($curl); 
curl_close($curl);

$json = json_decode($response);

print_r($json);

så vil du få JSON dataene, dersom du bruker "view source" på resultatet er det som regel lettere å lese ettersom whitespaces og newlines vises.
 

kongen

kongemedlem
Både Facebook og Twitter har en redirect på linkene.

Jeg prøvde å legge til denne koden i Adeneos kode, men det hjalp ikke:

PHP:
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

For Facebook:
Kode:
Facebookside: https://nb-no.facebook.com/fiatnorge
Link til: http://www.funnyordie.com/videos/5aceaf0e06/fiat-3

Linkens kildekode: 
<a href="http://l.facebook.com/l.php?u=http%3A%2F%2FFunnyOrDie.com%2Fm%2F90kn&amp;h=MAQGplfit&amp;s=1" rel="nofollow nofollow" target="_blank" onmouseover="LinkshimAsyncLink.swap(this, &quot;http:\\/\\/FunnyOrDie.com\\/m\\/90kn&quot;);" onclick="LinkshimAsyncLink.swap(this, &quot;http:\\/\\/l.facebook.com\\/l.php?u=http\\u00253A\\u00252F\\u00252FFunnyOrDie.com\\u00252Fm\\u00252F90kn&amp;h=MAQGplfit&amp;s=1&quot;);">http://FunnyOrDie.com/m/90kn</a>

For Twitter:
Kode:
Twitterside: https://twitter.com/fiatontheweb
Link til: http://instagram.com/p/qReGZym8t9/

Linkens kildekode: 
<a href="http://t.co/xhiNCa8JH2" rel="nofollow" dir="ltr" data-expanded-url="http://instagram.com/p/qReGZym8t9/" class="twitter-timeline-link" target="_blank" title="http://instagram.com/p/qReGZym8t9/" ><span class="tco-ellipsis"></span><span class="invisible">http://</span><span class="js-display-url">instagram.com/p/qReGZym8t9/</span><span class="invisible"></span><span class="tco-ellipsis"><span class="invisible">&nbsp;</span></span></a>

Hvordan kan man følge redirecten frem til destinasjonssiden, for å se om linken kommer frem til riktig side?
 
Topp