Olipas tylsää niin tälläisen väkersin menemään :)
Olettaa että liitettävä sivu on tekstitiedosto.
<?php function remote_include($name) { #Jos funktiota kutsutaan ilman osoitetta.. if (!$name) die("No input"); #haetaan data ja muutetaan arrayksi $source = file_get_contents($name) or die("Unable to get data from address"); $source = explode("\n", $source); #puretaan array ja tulostetaan foreach ($source as $sources) { echo $sources."\n"; } } ?>
Eikös tämä kuuluisi esimerkiksi koodivinkkein tms?
Eihän tuossa koodissa ole mitään järkeä, ensin muunnat tekstin taulukoksi ja sitten taikaisin tekstiksi turhan vaikealla tavalla, lisäksi readfile () ajaa saman asian kun tuo sinun funktiosi. Sitäpaitsi tämä taitaa olla väärällä alueella.
-tossu- tämähän onkin vaihtoehtoinen, 5 minuutissa väkerretty ratkaisu asialle. Voihan tuosta olla jollekulle hyötyäkin, mutta pääasiassa omaksi iloksi tehty
edit: Modet siirtää varmaan oikealle alueelle jos tarve vaatii?
Ei tuossa koodissa muuta suurempaa vikaa ole kuin se, että on täysin turhaa jakaa tuo data taulokoksi ja sitten taas yhdistää takaisin tekstiksi. Modet tosiaan siirtävät tämän oikealle alueelle tarvittaessa.
Voit lukea tiedoston taulukkoon PHP:n file
-funktiolla ja merkkijonoksi funktiolla file_get_contents
. Tuollainen pyörittely kuitenkin merkkijonon ja taulukon välillä on turhaa. Mielestäni funktion nimi on harhaanjohtava; include tarkoittaa, että tiedosto liitetään PHP:n tulkattavaksi.
Oikea "remote_include" onnistuu PHP:llä simppelisti, jos asetus allow_url_fopen
on päällä:
include("http://jokusivu.com/tiedosto.php.txt");
Huomaten, että etäpalvelin ei saa itse tulkata tiedostoa tiedosto.php.txt
, koska muuten toinen palvelin ei sen PHP-koodia pysty sisällyttämään.
trilog: pikainen testi omalla palvelimella osoitti, että oletuksena ubuntussa ei ainakaan toimi "suora" include muulta palvelimelta toiminut
Aihe on jo aika vanha, joten et voi enää vastata siihen.