Új hozzászólás Aktív témák
-
faster
nagyúr
válasz
burgatshow
#66
üzenetére
$kiir = fwrite (''xmods.xml'', $text);
helyett azt a három sort írd be, amit #61-ben írtam. Az fwritehoz először meg kell nyitni a fájlt fopennel. Ez visszad egy file-handlert (gyakorlatilag egy fájlra mutató erőforrásazonosító), ez kerül bele az $fp-be. Ezután minden fájlművelet ezen az bizonyos xmods.xml fájlon ezen azonosító segítségével zajlik.
$fp = fopen(''xmods.xml'',''w'');
Ezt a file-handlert kell átpasszolni az fwritenak, meg a kiírandó szöveget, ami a $text változóban van benne. ( De ez benne van az fwrite leírásában is a manualban )
fwrite($fp,$text);
Ezután lezárod a fájlt fclose-zal, ennek szintén file-handlert kell megadni.
fclose($fp);
[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#64
üzenetére
Jóvanna.
Idézőjeleket kicserélted? -
faster
nagyúr
válasz
burgatshow
#62
üzenetére
Légyszi oldd már meg önállóan. Három sor az egész file írás.
-
faster
nagyúr
válasz
burgatshow
#60
üzenetére
Bocs, most nézem, hogy file_put_contents csak 5-ös PHP-ban van. Akkor írd ki a hagyományos módszerrel. Egyébként meg ne a $template változó tartalmát írd ki, hanem amiben az str_replace-vel kicserélt tartalom van, azaz a $text változót.
$fp = fopen(''xmods.xml'', ''w'');
fwrite($fp,$text);
fclose($fp);
Egyébként az RSS olvasóknak, meg úgy általában mindenféle programnak, ami webszerverről kap adatot, (így a böngészőnek is) marhára mindegy, hogy milyen nevű fájlból kapja az adatokat, legyen akár egy statikus XML fájl, vagy egy dinmikusan generált xml egy php fájlból.
[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#58
üzenetére
Egyébként, ha nem túl leterhelt a site-od, akkor nem kell feltétlenül lementened fájlba a kész rss-t. Kinyomod a kimenetre printel, az az alkalmazás pedig a te PHP-d kimenetét olvassa, nem pedig a lementett XML fájlt.
-
faster
nagyúr
válasz
burgatshow
#56
üzenetére
Viccelsz? Tök egyszerű!

Egyébként kettő fájl kell. A template, és a kész RSS-XML fájl. A hírek meg egy adattáblában vannak. Meg hát persze maga a PHP file.
[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#54
üzenetére
Figyelj, az nem lesz jó. Gondolj csak bele, van egy templated %tartalom% sorral, erre te felülírod, akkor legközelebb olvasásnál már nem lesz a fájlban ilyen , hogy %tartalom% ! A template egy külön fájl mit csak olvasol, és van egy külön fájl a készre gyártott RSS-nek.
[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#51
üzenetére
fseek-et sosem használtam. Egyébként most nézem, te ugynazazt a fájlt akarod írni, amiből olvasod a template-t?

[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#49
üzenetére
Nem, a file_get_contents egy külön állatfajta, neki nem kell fopen (gyakorlatilag egyben tartalmazza az fopen, fread,fclose-t).
Semmi más nem kell neki csak a file neve elérési úttal, és azt a fájlt megnyitja, tartalmát beolvassa a megadott változóba, majd a fájlt lezárja.
Ennyi az egész:
$content = file_get_contents(''template.xml'');
Csak azért írtam egy másik hagyományosabb megoldást is, mert ezt a file_get_contents függvényt csak a 4.3 verzió fölött lehet használni.
Hasonlóan egyszerű a file_put_contents, ami pedig egy stringet kiír egy fájlba.
Ennek sem kell fopen,fclose, file-handlert tároló változó stb... csak egy fájlnév (meg persze a string, amit ki akarsz írni).
file_put_contents(''fileneve'',''eztakaromkiirni'');
vagy a te esetedben
file_put_contents(''RSSfileneve'',$template);
[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#47
üzenetére
Resource->erőforrás. File-handler->file azonosító. Kábé így lehet őket lefordítani.
-
faster
nagyúr
Jah, egyébként ha file_get_contents működik, van egy olyan, hogy file_put_contents is, ami file-ba ír egy stringet, hasonlóan bonyolult a szintaktikája, mi a file_get_contents-nek.

-
faster
nagyúr
válasz
burgatshow
#44
üzenetére
Egyrészt file_get_contents
másrészt...
Az fwrite-nak file-handler kell, annak a fájlnak a resouce id-ja, amit írni akarsz. Ezt egy fopennel tudod előállítani. Jelen esetben viszont kap egy $template nevű változót, amiben a template fájl tartalma van, nem pedig az írandó xml fájlnak a resource-ja. Választd szét a template fájl beolvasását az XML fájl írásától, mert már keverednek a változók.
[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#42
üzenetére
$template = fopen($rss, 'a') ??
Az fopen nem olvas be fájl tartalmat. Csak megnyit egy fájlt, és hozzárendel a nyitott fájlhoz egy Resource azonosítót, ami jelen esetben a $template változóba kerül bele, ezzel a fájllal még nem történt semmi, olvashatod freaddel, vagy írhatod fwrite-tal, de maga az fopen nem végez rajta semmi műveletet.
Ha file tartalmát akarod beolvasni egy stringbe, akkor
$template = file_get_contents($rss);
ez PHP 4.3.0 felett működik, vagy
$fh = fopen($rss,''r''); <- itt elég az ''r'' is, mivel csak olvasni akarod
$template = fread($fh,filesize($rss));
fclose($fh);
[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#38
üzenetére
Igen, kicsit zagyva volt a fogalmazásom. Szóval arra gondoltam, hogy kérdezted a beszúró fájlírást, és én azt írtam, hogy nem lehet. De elméletileg asszem lehetséges, mert a megnyitott fájlban tudsz pozicionálni. De ezt én még sosem próbáltam, általában sokkal egyszerűbb beolvasni egy szövegfájlt egy változóba, ott machinálni vele, majd visszaírni a fájlba.
-
faster
nagyúr
válasz
burgatshow
#36
üzenetére
Az, hogy ezt a $template változót fáljból olvasod be, vagy pedig a PHP-kódba rakod bele, tulajdonképpen mindegy, ha nagyméretű, akkor célszerű fájlba tenni.
Ja igen, elméletileg megnyitott fájlban is lehet pozicionálni (asszem), de ezt még sosem próbáltam. A template megoldás egyszerűbb, elegánsabb.
[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#34
üzenetére
Beszúrva nem lehet írni, vagy ''w'' paraméterrel nyitod meg a fájlt, és akkor a régi tartalom felülíródik, vagy ''a'' (append), és akkor a régi tartalom végéhez íródik. Én úgy csinálnám, hogy beolvasnám a fájlt, és stringműveletekkel raknám össze az új tartalmat.
Pl. csinálsz egy templatefájlt, kábé így:
<xml>
%tartalom%
</xml>
Ezt beolvasod egy változóba ($template). És van egy másik változód, legyen mondjuk $szoveg, amibe a szöveg van, amit be akarsz szúrni.
$t = str_replace(''%tartalom%'',$szoveg,$teplate);
és a $t-t kiírod a fájlba.
[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#32
üzenetére
Az attól függ, hogy milyen paraméterrel nyitod meg a fájlt azt fopennél.
Bővebben: link
A táblázatot nézd meg.
[Szerkesztve] -
faster
nagyúr
válasz
burgatshow
#30
üzenetére
<?xml version=''1.0'' encoding=''iso-8859-2'' ?>
Szúrd be az elejére.
Új hozzászólás Aktív témák
- Formula-1
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Kés topik
- MWC 2026: Kezünkben a Vivo V70, megvan a magyar ára is
- Elektromos (hálózati és akkus) kéziszerszámok, tapasztalatok/vásárlás
- Tarr Kft. kábeltv, internet, telefon
- Gyúrósok ide!
- Pécs és környéke adok-veszek-beszélgetek
- SUSE Linux
- Microsoft Excel topic
- További aktív témák...
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- Bluetooth hangszóró FM rádióval
- ÚJ AKKU! Ár/ÉRTÉK BAJNOK! Dell Latitude 5330 i3-1215U 6mag! 16GB 512GB 13.3" FHD 1 év gar
- BESZÁMÍTÁS! 4TB Seagate Skyhawk ST4000 SATA HDD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! Asus H110M i5 7500 8GB DDR4 250GB SSD GTX 1050Ti 4GB ZALMAN T3 Plus Deepcool 400W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Idézőjeleket kicserélted?


