Hallo allemaal ik ben beginnend met php.

Ik heb een aantal regels met code waarmee ik probeer het aantal facebook shares op een website op te halen en deze te tonen op het scherm maar het ziet ernaar uit dat er geen output wordt geleverd door een fout. Weet iemand wat ik fout doe?

<?
$url = 'https://www.google.com';;
$data = json_decode(file_get_contents("https://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=".rawurlencode()))[0];
echo $data->share_count; // Deze regel geeft de output
?>
Sorry Ariën, werkt ook niet
Welke versie van PHP heb je? Ik vermoed een behoorlijk oude versie?
Hier op 5.5 werkt het prima.

<?php
phpinfo();
?>
PHP Version 5.4.25
Dan is het vrij bijzonder. Dan heb ik een vermoeden dat je geen data mag ophalen met file_get_contents.
Test je dit bij een webhosting uit, of lokaal?

Zet dit eens bovenaan:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>

Mogelijk zie je nu meer foutmeldingen?
Ga eens na of de openssl extensie geladen is?

Deze heb je blijkbaar nodig.

En allow_url_fopen moet aan staan.
Krijg idd onderstaande foutmelding


Warning: file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /var/www/vhosts/www.domein.nl/HTML/test/test2.php on line 8

Warning: file_get_contents(https://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=http%3A%2F%2Fwww.nu.nl): failed to open stream: no suitable wrapper could be found in /var/www/vhosts/www.domein.nl/HTML/test/test2.php on line 8

Notice: Trying to get property of non-object in /var/www/vhosts/www.domein.nl/HTML/test/test2.php on line 10

Toevoeging op 28/06/2016 17:00:05:

wat betreft openssl

OpenSSL support enabled
OpenSSL Library Version OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
OpenSSL Header Version OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
Is dit lokaal of bij hosting?

Gebruik anders http i.p.v. https.
Wat heeft http vs https te maken met het feit dat allow_url_fopen uit staat? Ongeacht wat je nu met file_get_contents probeert te doen zal mislukken. Als je geen invloed op de instellingen kunt uitoefenen kun je altijd nog als cURL kijken.
Of een ticket bij de hosting indienen, want waarom zou een hosting een standaard functie blokkeren? Juist.... schijnveiligheid. Dat is al een reden dat ik 8 jaar geleden al eens ben overgestapt naar een betere hostingpartij.

Reageren