Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: remote_include

Teknkik [06.08.2010 23:50:35]

#

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";
        }

}
?>

ankzilla [06.08.2010 23:51:43]

#

Eikös tämä kuuluisi esimerkiksi koodivinkkein tms?

-tossu- [07.08.2010 00:14:49]

#

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.

Teknkik [07.08.2010 00:25:38]

#

-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?

-tossu- [07.08.2010 00:48:35]

#

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.

trilog [07.08.2010 10:18:06]

#

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.

Teknkik [07.08.2010 22:56:04]

#

trilog: pikainen testi omalla palvelimella osoitti, että oletuksena ubuntussa ei ainakaan toimi "suora" include muulta palvelimelta toiminut

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta