Miért nem tudok PHP-ban semmilyen lekérést végrehajtani?
Adott egy CPaneles webtárhely.
Sem a file_get_contents, sem a Curl, sem az fopen lekérés nem működik PHP-ban az allow_fopen beállítás engedélyezése ellenére sem.
Lehetőségeim korlátozottak, a tárhely nem saját, és jelenleg is van már rajta tartalom, így csak korlátozottan van lehetőségem a konfigurációval kísérletezni.
Tegyük fel, hogy van egy dinamikusan frissülő JSON fájlunk, amit szeretnék lekérni. Hiába próbálkozom, egyszerűen nem tudom megtenni a lekérést (localhoston, XAMPP-el működik). A file_get_contentsből indultam ki, ami nem nyert. Alternatívaként a (tárhelyen szintén engedélyezett) Curl-el folytattam a sort, ami ismét nem adott vissza semmit, végül az fopennel próbálkoztam, nem működött.
Áttúrtam az összes alternatívát, legalább 15 oldalt a neten ( + beszélgettem a ChatGPT-vel is :D), de nem jutottam eredményre.
Több forrásból is próbáltam lekérni, egyik sem működött.
Mi a teendő ilyenkor? Ahogy korábban is írtam, a tárhely nem az enyém, a tulajdonosa pedig nem hozzáértő, így a lehetőségek nagyban korlátozottak. Tartalom is van rajta, amit jó lenne épségben hagyni.
Rövidesen néhány példakódot beszúrok, amivel próbálkoztam.
Néhány kód, amivel próbálkoztam, de nem vált be:
(1)
$Url = " [link]
function url_get_contents ($Url) {
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
(2)
$file = " [link]
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
$exists = false;
}
else {
$exists = true;
$file_contents = file_get_contents($file);
}
(3)
$url = " [link]
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
Legalább 10 működőképesnek tűnő alternatívát találtam neten, amiből localhoston 5-6 kiválóan szuperált, de ezen a tárhelyen 0.
Az sem titok, hogy egy viszonylag nagy látogatottságú kifogástalanul működő Wordpress oldal van a tárhelyen, ezért kísérletezgetni sem nagyon van lehetőség.
Egy előre elkészített kód publikálása a feladatom, de ilyen körülmények között már a legeleje elvérzik a kódnak.
Szolgáltatónak van lehetősége egyes php program parancsot letiltani. Ha jól tudom a php.ini-ben van rá opció, amit te nem érsz el. Ezt önvédelemből csinálják, hogy ha 1 gépen fut több vhost is, ne tudj csak úgy átnavigálni máshova, mint ./../../pistike/kepek/vmi.json
Azaz ha ismered, hogy a php hogyan konfigurálható és nem csak a nyelvet tanulod (hanem az üzemeltetést is) akkor rájöhettél volna. ;)
Hibakeresés!!!
curl_error() mit mond?
Nekem úgy tűnik, hogy vaktában lövöldözöl, de fogalmad sincs, mit csinálnak ezek a kódok. Az első és a harmadik ugyanaz, csak az első egy függvénybe van ágyazva.
Csak halkan kérdezem: az $output változót felhasználod valamire? Kiíratod? Vagy csak várod hogy történjen vele valami?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!