Eräällä sivulla lukee aina 1 tai 0, ei mitään muuta, ei mitään HTML-koodeja.
Kuinka voisin lukea tuolta sivulta, lukeeko siellä 1 vaiko 0?
Eli silloin kun sivulla lukee 1, tulostaisin vaikkapa omalla sivullani "Sivulla lukee 1", ja kun sivulla lukee "0", omalla sivullani lukisi "Sivulla lukee 0".
Tämä sivu (jossa tämä 1 tai 0 lukee) ei ole omalla palvelimellani, joten voinko edes lukea sitä?
<?php $data = file_get_contents("http://sivun.osote.org/sivu.html"); if ($data == "1") echo "Sivulla lukee 1"; else echo "Sivulla lukee 0"; ?>
Eipä tunnu tuo toimivan.
Virheilmoituksena tulee:
Fatal error: Call to undefined function: file_get_contents() in d:\program files\easyphp\www\tila.php on line 2
Edit:
Ahaa. Kävin PHP:n sivuilla ja etsin tuota file_get_contents()-funktiota. Käsitinkö oikein, tuota funktiota ei ole 4.3.0:aa vanhemmissa versioissa?
Löysin kuitenkin samalta sivulta tällaisen pätkän, joka korvaa sen:
<?php if (!function_exists("file_get_contents")) { function file_get_contents($filename, $use_include_path = 0) { $data = ""; // just to be safe. Dunno, if this is really needed $file = @fopen($filename, "rb", $use_include_path); if ($file) { while (!feof($file)) $data .= fread($file, 1024); fclose($file); } return $data; } }
Lisäsin odysin pätkän tuon jälkeen niin toimi. Kiitos!
Edit2: Jahas. Eipäs toimikaan. Sivulla lukee 1, mutta tuo pätkä palauttaa kuitenkin arvoksi 0. Mikähän lie nyt vikana?
PHP:si on todennäköisesti liian vanha - file_get_contents-funktio tuli mukaan vasta PHP:n versiossa 4.3.0. Näin voit tehdä saman vanhemmissa versioissa toimivan file-funktion avulla.
Johan lie outoa.
Kokeilin tuota Antinkin lisäämää koodia. Palauttaa edelleen nollan vaikka pitäisi palauttaa ykkönen. Lisäsin vieläpä vaihtoehdon että jos ei ole yksi tai nolla, tulostaa tekstin "Sivulla ei lue mitään" ja juuri tämän se nyt tulostaa. Eli skripti yrittää väittää ettei sivulla todellakaan lue mitään, vaikka siellä kyllä lukee.
Se ei ole muuten HTML-sivu, enkä edes tiedä mikä tiedostomuoto. Onko sillä mitään merkitystä?
Kokeile tulostaa $data[0]:n sisältö, niin näet, mitä sieltä todellisuudessa tulee. Jos tiedostossa on numeron lisäksi rivinvaihtoja, käytä trim-funktiota niiden poistamiseen.
if (trim($data[0]) == 1)
Tai pystytkö antamaan testiä varten sen sivun osoitteen, jolta numero luetaan?
lainaus:
Kokeile tulostaa $data[0]:n sisältö, niin näet, mitä sieltä todellisuudessa tulee. Jos tiedostossa on numeron lisäksi rivinvaihtoja, käytä trim-funktiota niiden poistamiseen.
if (trim($data[0]) == 1)Tai pystytkö antamaan testiä varten sen sivun osoitteen, jolta numero luetaan?
Jahas. Kyllä se ykkösen sieltä vain tulostaa :o Mutta edelleenkään tuo if-else ei toimi :o
Rivinvaihtoja siellä ei kyllä pitäisi olla.
Edit: Vielä mitä, kyllähän siellä kai sitten olikin niitä rivinvaihtoja, sillä se koodi toimii nyt.
Kiitos!
Aihe on jo aika vanha, joten et voi enää vastata siihen.