Moi,
pitäsi saada file_get_contents toimimaan mutta on estetty. Mikäs tähän on vaihtoehtona, googlettamalla löytyy vain päinvastaisia ohjeita. JSONia pitäisi pystyä lukemaan.
Estetty miten? jos CORS:lla (Cross origin resource sharing), niin sitten ei kyllä hirveästi vaihtoehtoja ole. Tuo tarkoittaa että mesta mistä olet kamaa hakemassa, on estänyt resurssienjaon oman domaininsa ulkopuolelle (tai rajannut sallittuihin). Tässä tapauksessa ei auta kuin olla yhteydessä paikkaan mistä haluaa kamaa hakea, ja pyytää lupaa että oma domain lisätään sallittujen listalle.
Puhun siis siitä oman palveluntarjoajan estosta.
Mut hei, itse asiassa yön nukuttuani osasin esittää Googlelle oikeat hakusanat (file_get_contents not working) ja sain ratkaistua ongelmani!
Kerro ihmeessä se ratkaisu muillekin. Seuraava googlettaja saattaa löytää tämän keskustelun.
Yleensä kannattaa katsoa (ja kertoa), millainen virheilmoitus tulee. Sitä virheilmoitusta voi hyödyntää myös ratkaisun etsimisessä.
Ainakin yksi mahdollinen ongelma on PHP:n asetus allow_url_fopen, joka joillain palvelimilla on laitettu pois päältä. Silloin file_get_contents ei lataa netistä tietoa vaan tulee sellainen virheilmoitus kuin ”http:// wrapper is disabled in the server configuration by allow_url_fopen=0”. Ratkaisu on tietysti kyseisen asetuksen muuttaminen.
# asetustiedostoon (php.ini) allow_url_fopen = 1
Toinen mahdollinen ongelma on SSL-sertifikaatin tarkastus, joka joillain palvelimilla tuntuu olevan rikki (ts. luotettuja juurisertifikaatteja ei löydy). Tähän paras ratkaisu on palvelimen asetusten korjaaminen, ja hätätilanteessa toimiva purkkaratkaisu on ohittaa tarkastus.
<?php stream_context_set_default(["https" => ["verify_peer" => false]]);
Tietenkin on monia muita mahdollisia syitä, miksi file_get_contents ei toimisi, ja niiden selvittelyssä on hyödyksi virheilmoituksen lukeminen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.