Vor einigen Jahren habe ich ein Script geschrieben, welches den Seitentitel von URLs ausliest. Das funktioniert auch soweit super. Leider klappte es bei Facebook nicht und es kam immer der Titel „Update your Browser“. Scheinbar wertet Facebook den übermittelten User-Agent im HTTP-Header aus. Doch wie teilt man PHP mit, dass man gerne eine anderen User-Agent im Header übermitteln möchte?
Die Lösung ist wirklich einfach. Dazu setzt man einfach einen Wert in der Konfiguration um. Das geht entweder per ini-Set oder eben direkt in der php.ini. Ich hab einfach mal den User-Agent von meiner aktuellen Installation genutzt:
ini_set('user_agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.101 Safari/537.11');
In Curl geht das Ganze natürlich auch:
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.101 Safari/537.11');