Külső fájl becsatolása PHP vagy JavaScript segítségével


Honlapok esetében néha nagyon hasznos megoldás tud lenni, ha a lap tartalmát
(vagy egy részét) külső fájlból linkeljük be.


Milyen előnyei vannak?
1.) ha a honlap egy részét gyakran
frissítjük, és mondjuk a HTML fájlunk elég nagy, kár lenne minden egyes esetben
letöltenünk / módosítanunk / feltöltenünk, ha mi közben mondjuk csak egy kis
részét akarjuk változtatni.
2.) Ha egy adott tartalom sok fájlban
megjelenik, mindegyikben ugyanúgy, és nekünk vmi oknál fogva módosítani kell ezt
a tartalmat (minden egyes fájlban), macerás lehet mindent letölteni, módosítani
és visszatölteni.



Nézzünk 1-1 példát a fentiekre a könnyebb érthetőség kedvéért.


1.) van egy 100kb-os “gumikacsa.html” fájlom, melyen írom ki
hogy mikor mi történt a lap frissítésével kapcsolatban. Ez a “hírek” rész amúgy
mint szöveg, nem foglal el többet mint mondjuk 3kb.
Alapesetben minden egyes
alkalommal le kell tölteni a 100kb-os “gumikacsa.html“-t, hozzáírni a
hírt, visszatölteni a szerverre.


Ennél sokkal kényelmesebb megoldás, ha a híreket egy külön fájlban (pl.
hirek.txt“) tároljuk, és a”gumikacsa.html“-be pedig csak egy
kódot teszünk, hogy a böngészőben történő megjelenéskor a “hirek.txt
tartalmát is jelenítse meg. Így nekünk elég csak a 3kb-os txt-vel
dolgoznunk.


2.) Van egy honlapunk, mely 100 különböző html lapból áll, és mi
mindegyik aljára be akarjuk tenni a copyright szöveget meg mondjuk az Email
címünket. Megdöglik az Email szolgáltatónk, mi úgy döntünk hogy áttérünk egy
másik szolgáltató használatára, ez eddig még ok is. Viszont az új Email címünket
végig kell cserélgetni mind a 100db html fájlban, ami nem kis munka.


Ezzel szemben ha a 100db html fájl aljára csak egy kódot teszünk hogy
megnyitáskor a kód helyén mondjuk a “lapalja.txt” tartalma jelenjen meg,
máris nyert ügyünk van. Elég azt az 1db “lapalja.txt” -t módosítanunk és
frissítenünk a szerveren, onnantól kezdve mind a 100db html fájlunkban a
módosított tartalom fog megjelenni.


Ilyen külső fájl tartalmának a beszúrásához én 2 módszert ismerek, de biztos
van több is (például ASP-ben is biztos meg lehet oldani valami hasonló egyszerű
megoldással).


1. megoldás


A php nyelv és az “include” használata.
Nem kell mást tennünk, mint
azt a fájlnak (legyen mondjuk gumikacsa.html), melybe a külső fájlt majd
be”include”oljuk (szép magyar szóval élve), adjunk egy “*.php
kiterjesztést az addigi “*.html” helyett. Tehát a “gumikacsa.html
helyett most már egy “gumikacsa.php” fájlunk lesz. Ha ezzel megvagyunk,
tegyük be a forráskód tetszőleges részére (persze ott fog megjelenni a külső
fájl tartalma) az alábbi PHP kódot:


<?php include “lapalja.txt”?>


Ez annyit fog csinálni, hogy a “lapalja.txt” tartalmát fogja
megjeleníteni. Abban az esetben, ha a “gumikacsa.php” és a
lapalja.txt” nem egy könyvtárban van, használjuk a relatív
hivatkozásokat.


például ha a “lapalja.txt” egy “tartalom” nevezetű
alkönyvtárban van az alábbiak szerint:


http://www.szervercime.hu/lapom/gumikacsa.php
http://www.szervercime.hu/lapom/tartalom/lapalja.txt


akkor ennek megfelelően a “gumikacsa.php“-be az alábbi kódot kell majd
beszúrni:


<?php include “tartalom/lapalja.txt”?>


A “lapalja.txt” tartalmának formázása ugyanúgy történik, mintha egy
html fájl lenne, használjuk a <br>-t, a <b></b> stb…
tag-eket nyugodtan, különösebb formai megkötése nincs.


Körülbelül ennyi lenne a PHP-s megoldás, ha bármiféle kérdésed van ezzel
kapcsolatban, írj a fórumba :)



2. megoldás


A javascript használata, melyhez maradhat a fájlunk “html”
kiterjesztésű. Az előző példánál maradva, van egy “gumikacsa.html
fájlunk, és egy “lapalja.txt“-nk. A html fájlba az alábbi kódot kell
beillesztenünk.


<SCRIPT language=javascript src=lapalja.txt></SCRIPT>


A “lapalja.txt” fájl tartalma itt viszont már pár dolgot kötelező
jelleggel kell hogy tartalmazzon. Valahogy így fog kinézni:


// Begin Javascript Include
document.write(‘ide jön a beillesztendő
szöveg’)
// End Javascript Include


Fontos, hogy a document.write-t ne hagyd le, másképp nem fog működni a dolog.
Ha pl. több sorban szeretnéd kiiratni a szöveget, akkor a szokásos html tag-ek
használata mehet a formai részen belül:


// Begin Javascript Include
document.write(‘első sor<br>második
sor<br>harmadik sor <B>kövér betűvel</B>’)
// End
Javascript Include


Tehát mint láthatod, ha a kötelező document.write(”) formát betartod, azon
belül használhatók a szokásos html tag-ek.


Körülbelül ennyi lett volna a leírás, tudom nem valami bődületes dolog ez a 2
kis kód, de nagyon hasznosnak és sok esetben időspórolónak tartom őket.

Kapcsolódó bejegyzések:
  • Előfordulhat olyan eset honlapszerkesztés közben, hogy a honlapon szeretnél kitenni egy hosszabb szöveget, de úgy, hogy ne legyen nagyon “hosszú” lefele a la …

  • A www.hwsw.hu fórumait olvasgatva jutott eszembe (spamról volt szó), hogy talán már másnak is okozott kisebb-nagyobb kellemetlenséget, hogy postafiókjában akarva …

  • Először is nem árt egy biztonsági mentést csinálni a főfájlodről! (index.html), aztán mentsd el a "fő" oldaladat , PHP dokumentumként. Egyszerűen csak …

  • Honlapkészítés során, ha a hagyományos módon – statikus HTML fájlokat gyártva – állsz neki a munkának, előbb vagy utóbb belefutsz abba a problémába, hogy elég ma …

  • Az alábbi leírásnak már van egy előzménye, melyet “php switch get I.” címmel megtaláltok a honlapon. Mivel e leírás annak továbbfejlesztett – és módszerben is új …

A cikket beküldte: Harder (http://blog.harder.hu)

4 hozzászólás

  1. znet says:

    Isten vagy! Köszönöm!

  2. MapDesign says:

    php alá szerintem inkább ezt ha .txt tartalmat illesztünk be

    Hogy ez miért jobb mint az include?

    Az include-vel a php feldolgozó egy php programot vár. A file_get_contents pedig egyértelműen a behívandó ,,file.txt,, tartalmát illeszti be. És ezt akár függvénybe is tehetjük és str_replace();-val még szórakozhatunk vele..

    Tehát ha tagekből akarunk [b]-t csinálni pl .:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <?php
     
    $out = str_replace(
    array(’‘,’‘) /* ezt cserélem */,
    array([b],[/b]) /* erre */,
    file_get_contents(file.txt’)
    );
     
    echo $out;
     
    ?>

  3. Zoli says:

    Pontosan ilyet kerestem napok óta, de csak itt látom normálisan leírva, normális példával, ugyanis nincs angol tudásom szinte semmi, máshol meg a nagy szavakra hajtanak. Köszi a konyhanyelvi leírást Harder.

  4. boti says:

    nagyon jo

Szólj hozzá
a Külső fájl becsatolása PHP vagy JavaScript segítségével c. bejegyzéshez

- Engedélyezett HTML elemek: <a> <em> <strong> <ul> <ol> <li>
- Forráskód beküldéséhez tedd a kódot ezek közé: <pre lang="php" line="1">Kódrészlet helye itt</pre>