benkovics Posted August 1, 2005 Posted August 1, 2005 A html-ben lehet-e olyat csinálni, hogy egy szöveget, ami sok oldalon szerepel, egy txt fájlból szedem? Vagy ezt csak php-ban lehetséges? Remélem érthetõ amit kérdezek...
Kovács Gyula (MiniDisk) Posted August 2, 2005 Posted August 2, 2005 Lehet, de csak PHP-vel oldható meg.
Mezofi Posted August 2, 2005 Posted August 2, 2005 fopen(), fwrite(), fread(), A text fájllal végzett müveletekhez jogosultságot kell baállítani, ha nem a saját szervereden ügyködsz vele. Bövebben: http://hu2.php.net/manual/hu/function.fread.php
arpsoft Posted August 2, 2005 Posted August 2, 2005 Ha a szerver támogatja az SSI-t, akkor pl így: <!--#include file="valami.html" --> A fájlnévnek az aktuális dokumentum helyéhez képesti relatív útvonalat kell tartalmaznia. <!--#include virtual="valami.html" --> A fájlnévnek a HTTP szerver gyökeréhez képesti relatív útvonalat kell tartalmaznia. Lehet, hogy a dokumentumodat át kell nevezni *.shtml-re, hogy a szerver engedélyezze benne az SSI-t.
benkovics Posted August 2, 2005 Author Posted August 2, 2005 @Mezofi Köszi! De nekem ez olyan, mint majomnak az abc..... Szóval, kicsit konkrétabban! Van egy kód: <div id="formazas"> <p>Ide jönne a txt </p> </div> Szóval, konkrétan mit hová kell írni, hogy ez mûködjön? a txt neve: "neo_bal.txt".
benkovics Posted August 2, 2005 Author Posted August 2, 2005 @Arpsoft Oké! De ez egy php fálj! Van benne egy névnap script!
Mezofi Posted August 2, 2005 Posted August 2, 2005 Létrehozol egy beviteli formot és $szoveg változóba betöltöd (amit be akarsz tenni a txt-be) Ezt a $szoveg változót átadod a következõ scriptnek: <?php if (isset($_POST['szoveg'])) { $fp = fopen("szoveg.txt","a"); // a megadott fájlt hozzáfuzésre nyitja meg, vagy létrehozza, ha még // nincs ilyen fájl flock($fp, LOCK_EX); // a fájl zárolása fwrite($fp, $szoveg."\n"); flock($fp, LOCK_UN); // a fájl zárolásának feloldása fclose($fp); // a fájl bezárása print("Sikerult\n".$szoveg);} ?> Így kapsz egy szoveg.txt fájlt (a szoveg-et átcserélheted mindenhol amire akarod), ha még nem létezett, ha már létezik akkor csak bele ír. A kiíratás: <?php $fp = "szoveg.txt"; $eredmeny=fopen($fp,"r"); flock($eredmeny, LOCK_EX); $contents = fread($eredmeny, filesize($fp)); flock($eredmeny, LOCK_UN); fclose($eredmeny); print ($contents ); ?>
arpsoft Posted August 2, 2005 Posted August 2, 2005 <div id="formazas"> <p> <!--#include file="neo_bal.txt" --> </p> </div>
benkovics Posted August 2, 2005 Author Posted August 2, 2005 Köszi Arpsoft! Erre gondoltam! @Mezofi! Neked is köszönöm a segítséget, csak az nekem túl bonyolult!
Mezofi Posted August 3, 2005 Posted August 3, 2005 @benkovics Nincs mit. @arpsoft Én is kipróbáltam, egy létezõ szoveg.txt fájllal, egy üres htm dokumentumba a body részbe beszúrtam így: <head> </head> <body> <p> <!--#include file="szoveg.txt" --> </p> </html> Ûres dokumentumot jelzett.
Mezofi Posted August 3, 2005 Posted August 3, 2005 Akkor próbáldki minél elöbb, azért mert nálam nem megy azért még lehet jó! Egyébként a txt fájlba nem direktbe viszed be a szöveget ugye? Mert akkor a kiíratáskor meglepetés karaktereket fogsz látni! Az én ajánlatomnál a lap elejére ezt beilleszted: <?php $fp = "neo_bal.txt";// A keresett txt fájl $eredmeny=fopen($fp,"r"); //Megnyítjuk a fájlt olvasásra flock($eredmeny, LOCK_EX); //Zároljuk, hogy egyszerre csak egy felh. haszn. $contents = fread($eredmeny, filesize($fp)); //Olvassuk a fájlt flock($eredmeny, LOCK_UN); // Feloldjuk a zárolást fclose($eredmeny); //Bezárjuk a fájlt ?> a kiíratás helyére pedig csak ennyit kell írni: <?php print ($contents ); ?> De arpsoft-é azért egyszerübb, ha müködik. Írd meg nálad müködik-e a <!--#include file="neo_bal.txt" -->
benkovics Posted August 3, 2005 Author Posted August 3, 2005 Köszi! Nos írd le pontosn, mint egy hülyegyereknek, hogy hogyan csináljam, lépésrõl-lépésre..... Nem értem, hogy mit írsz! A másikat mindjárt kipróbálom!
Mezofi Posted August 4, 2005 Posted August 4, 2005 Jó, vegyük úgy, hogy a neo_bal.txt fájl létezik. Készítesz, egy php üres dokumentumot (lapot), ugyanabba a mappában ahola txt fájl van! A tetejére ezt a kódot bemásolod: <?php $fp = "neo_bal.txt";// A keresett txt fájl $eredmeny=fopen($fp,"r"); //Megnyítjuk a fájlt olvasásra flock($eredmeny, LOCK_EX); //Zároljuk, hogy egyszerre csak egy felh. haszn. $contents = fread($eredmeny, filesize($fp)); //Olvassuk a fájlt flock($eredmeny, LOCK_UN); // Feloldjuk a zárolást fclose($eredmeny); //Bezárjuk a fájlt ?> Ezután valahol a lapon, ahol ki akarod íratni ezt írod be: <div id="formazas"> <p><?php print ($contents ); //Ide jön a txt ?> </p> </div> Remélem, elég részletes volt.
benkovics Posted August 4, 2005 Author Posted August 4, 2005 A tetejére, az azt jelenti, hogy a <head> és </head> közé?
Mezofi Posted August 4, 2005 Posted August 4, 2005 A php script-nek teljesen mindegy hová rakod, nem htm-tag ként szerepel. Tehát rakhatod a <head> elé, mögé, bele,stb.. A lényeg, hogy a kiíratás elé rakd, mert ugye egy táskából is csak akkor tudsz valamit kivenni, ha elötte bele raktad!
benkovics Posted August 4, 2005 Author Posted August 4, 2005 oké! Köszi! Mûködik! --- És mi van akkor, ha kettõ ilyet szeretnék egy oldalra? Bal oldalra is, és jobb oldalra is?
Mezofi Posted August 4, 2005 Posted August 4, 2005 a <?php print ($contents ); //Ide jön a txt ?> kóddal annyiszor íratod ki ahányszor akarod. Bárhova beilleszted ezt a kódot ott mindig kiírja a $contents értékét amelybe beletöltöttük az oldal elején a txt fájl teljes tartalmát.
benkovics Posted August 4, 2005 Author Posted August 4, 2005 Bocs! Rosszul fogalmaztam! Szóval két txt van! Az egyik a bal oldalra, a másik a jobb oldalra! Így két különbözõ dolgot szeretnék mind a két oldalra kiíratni! Azt hogyan kell?
Mezofi Posted August 5, 2005 Posted August 5, 2005 Nyilván akkor az elsõ php-scriptet újra le kell futtatni, tehát a az elsõ után újra be kell rakni. Csak annyi különbséggel, hogy ezt a sort kicseréled: $fp = "neo_bal.txt";// A keresett txt fájl mondjuk erre: $fp= "ide beirod a másik fájl nevét.txt";// A keresett txt fájl és ezt is kicseréled: $contents = fread($eredmeny, filesize($fp)); //Olvassuk a fájlt mondjuk erre: $contents_masik_fajl = fread($eredmeny, filesize($fp)); //Olvassuk a fájlt És a kiíratáskor (amikor a másik fájlt iratod ki, akkor természetesen ennek a változónak a tartalmát íratod ki, valahogy így: <?php print ($contents_masik_fajl ); //Ide jön a txt ?> Persze, ha már eléggé megismered a php-t akkor lehet függvényt írni a sokat használt txt olvasásra, és akkor csak egy sor lenne a függvény hívás, és a változó átadása. De így is müködik! Szerintem, ha át nézed, hogy mit alakítottam át, akkor már rá jössz hogyan lehetne, mondjuk három-négy txt-bõl adatat kinyerni.
benkovics Posted August 5, 2005 Author Posted August 5, 2005 Jó! Ehhez nekem szabadnap kell, hogy megértsem...... Köszi!
benkovics Posted August 8, 2005 Author Posted August 8, 2005 Csütörtöktõl leszek szabadságon! Utána foglalkozom vele!
robar Posted October 26, 2005 Posted October 26, 2005 Ha még él ez a téma,válaszolnék. Ezt egy egyszerû php függvénnyel lehet megoldani.Ezt a kódot beírod bárhová a body-n belül a html file-ba,és .php - ba mented el,mûködni fog. <?php include("fájl_név.kiterjesztés"); ?> ennyi. pl <?php include("dokumentumok/szoveg2.txt"); ?> Ezzel a függvénnyel bármilyen szöveget beszúrhatsz.(pl: .txt , .html .js , .php ...) Remélem , tudtam segíteni - robar
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now