Hirdetés
- Magga: PLEX: multimédia az egész lakásban
- czundermák: Shikoku Henro #0: Mégis mi ez?
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- laskr99: DFI és DFI Lanparty gyűjteményem
- Cifu: Űrhajózás 2025 - Összefoglaló írás
- Invázió egy novellában 3-4. (Update) +5. fejezet! (18+ nyelvezet)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
Ú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
- Kuponkunyeráló
- Magga: PLEX: multimédia az egész lakásban
- Milyen TV-t vegyek?
- OLED TV topic
- LEGO klub
- Vezetékes FÜLhallgatók
- Gaming notebook topik
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Okos Otthon / Smart Home
- További aktív témák...
- Szép! Lenovo Thinkpad T14s G2 Üzleti "Golyóálló" Laptop 14" -50% i5-1135G7 4Mag 16GB/512GB FHD IPS
- Bomba ár! Lenovo ThinkPad Yoga 370 - i5-G7 I 8GB I 256SSD I 13,3" FHD Touch I W11 I Cam I Gari!
- Bomba ár! Lenovo ThinkPad Yoga 260 - i5-G6 I 8GB I 256SSD I 12,5" Touch I W11 I Cam I Gari!
- HP EliteBook 850 G8 Fémházas Tartós Laptop 15,6" -65% i7-1165G7 16/512 Iris Xe FHD
- Bomba ár! Lenovo ThinkPad X390: i5-G8 I 16GB I 256-1TSSD I 13,3" FHD Touch I HDMI I Cam I W11 I Gar
- Telefon felvásárlás!! Apple iPhone SE (2016), Apple iPhone SE2 (2020), Apple iPhone SE3 (2022)
- Apple iPhone 12 Mini 128 GB Fekete 1 év Garancia Beszámítás Házhozszállítás
- Eredeti Lenovo 230W töltők - 4X20Z83995
- Huawei P20 Pro / 6/128GB / Kártyafüggetlen / 12Hó Garancia
- Xiaomi 15 / 12/256GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest
Idézőjeleket kicserélted?



