Hali! Elkezdte birizgálni az agyamat, és a látottak alapján tökre tetszik. A kérdésem az az, hogy van e valami dokumentáció mert az rss.lap.hu-n semmit sem találtam, viszont rohadtul meg akarom tanulni. Átlestem az rss-es témákat itt a PH-n de azokban nem az én problémáimmal foglalkoznak, és mivel oda is írtam de mindenki le se szarta ezért gondoltam, ha új totyikba kerül talán többet fog élni!
Köszönöm!
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] [Luck Dragon:] MárkaLánc
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [antikomcsi:] Való Világ: A piszkos 12 - VV12 - Való Világ 12
- [Re:] [btz:] Internet fejlesztés országosan!
- [Re:] Spyra: akkus, nagynyomású, automata vízipuska
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [bb0t:] Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [sziku69:] Szólánc.
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
GAMEPOD.hu témák
Hozzászólások
(#1) burgatshow
burgatshow
veterán
Fisha
őstag
Most az xml erdekel ugy altalaban, vagy csak konkretan az rss?
burgatshow
veterán
Miért a kettő nem ugyanaz? Megszeretném tanulni, hogyan működik, hogyan épül fel és magát a ''nyelvét'' is.
X-COM
nagyúr
az rss, egy meghatározott sablonra épülő xml
nekem kb. ennyi az össz tudásom
Blog:http://ikszkom.freeblog.hu RSS:http://ikszkom.freeblog.hu/rss.xml http://live.xbox.com/member/ikszkom
Fisha
őstag
hat ugyan az rss temat nem vagom, de szerintem az rss egy elore meghatarozottan felepitett xml.
Node ha xml-rol szeretnel okosodni, akkor use google: xml tutorial.
Amugy java.sun.com-rol indulva is talalsz xml leirasokat dogivel.
burgatshow
veterán
Köszi, de remélem nem értettél félre: engem ez a tipus érdekel: Bővebben: link
Fisha
őstag
Hat most akkor ujra nem ertem, hogy mit szeretnel.
Amit linkeltel az egy xml, meghozza egy rss xml. Tudod bogar-rovar tipikus esete.
burgatshow
veterán
Ja igen, na olyat akarok én az oldalra!
Akkor rss!
[Szerkesztve]
Fisha
őstag
Szerintem az rss.lap.hu angol linkjei kozott van hasznalhato. Pl. rogton az elso.
burgatshow
veterán
Cool, köszi, már csak arra lennék kiváncsi, hogy vajon azt hogy oldják meg, hogy ez magától frissüljön?? Gondolom valami PHP-s keverés van de nem vagyok benn biztos!
Fisha
őstag
Gondolom ugyanugy, ahogy a cikekket publikaljak rssben, kozzeteszik a legfrissebb cikklistat is. Igy mar csak egy rss catcher/parser kell hozza. Gondolom web sitere szeretned, tehat jol jonne valami web-based, pl. php-s. Ugy tunik a carp nevu pont egy ilyen:
Bővebben: link
u.i.: mint mondtam mar, fogalamam sincs az rss temarol, tehat ha tevednek valamiben akkor az okosok avatkozzanak kozbe
Fisha
őstag
Sot, ahogy itt a ph-n nezem, lehet, hogy csak a cikklistat teszik kozze, a cikkeket nem is.
u.i.: persze ez a lenyegen semmit sem valtoztat.
burgatshow
veterán
Ez most pontosan mi a szöszt csinál? Ez pakolja össze a rss-t?
Fisha
őstag
Neked az ellenkezoje kell, nem? Parsolnod kell a bejovo xml-t. Hat ez ezt megcsinalja, es html-t kop ki az xml bemenetbol.
burgatshow
veterán
Félreértettük 1mást. Van 1 oldal, ahol eléggyakran frissülnek hírek. Mint itt a ph! Na én azt akarom elérni, hogy amikor valaki megírt 1 hírt, és kikerült az oldalra, akkor azt 1 php script (most írom) automatice szúrja bele az rss fájlba. Nem tudom érted e! Valszeg nem de hátha!-
Fisha
őstag
Szoval neked a masik oldala kell a dolognak. Tehat rss-t (xml-t) szeretnel osszeallitani egy hirbol es megosztani mas siteokkal?
Ezesetben egy ajanlott link:
Bővebben: link
[Szerkesztve]
faster
nagyúr
RSS-t könnyű összeállítani, gyakorlatilag csak egy csomó echo az egész.
Fisha
őstag
Hat igen, az emlitett link is errol szol .
El tudok kepzelni olyan esetet is, amikor szukseg lehet hozza xml eszkozokre, de nem altalanos valoban.
faster
nagyúr
Nekem van egy nagyon egyszerű XML osztályom, ami push-pop rendszerben kezeli a hierarchikus XML kezelést, de echoval sem sokkal bonyolultabb.
burgatshow
veterán
Az nem egyszerűbb megoldás, hogy a mezők tartalmát kiolvassuk változókba, majd egy fwriteal összerakjuk az rss-t?
Valahogy így gondoltam csak ez most pont nem jó!
<?php
$sql = @ mysql_connect (''localhost'', ''root'', ''1234'');
if (! $sql) {
print (''Nincs MySQL szerver!'');
die(); }
$selectdb = @ mysql_select_db(''xmods'');
if (! $selectdb) {
print (''Nem kiválasztható az xmods tábla!'');
die(); }
$query = ''SELECT * FROM news ORDER BY id DESC LIMIT 15'';
$getquery = mysql_query($query);
if (! $getquery) {
print (''Nem végrehajtható query!'');
die(); }
while ($sor = @ mysql_fetch_array($getquery))
{
$cim = ''''.$sor['cim' ].'''';
$hir = ''''.$sor['hir' ].'''';
$link = ''http://xmods.uw.hu/plugins/news/shownew.php?newsid=''.$sor['id' ].'''';
$date = ''''.$sor['year' ].'''';
$ido = ''''.$sor['ido' ].'''';
$rss = ''xmods.xml'';
if (is_writable($rss)) {
if (!$handle = fopen($rss, 'a')) {
echo ''Nem elérhető: ($rss)'';
exit;
}
if (fwrite(''<rss version=\''2.0\'' xmlns:dc=\''http://purl.org/dc/elements/1.1/\''>
<channel>
<title>..::eXtreeme ModdingZ::.. hírek</title>
<link>http://xmods.uw.hu/</link>
<description>..::eXtreeme moddingZ::.. Extrém világok moddingja - extrém moddingok
világa. Nézz be, ha modder leszel, vagy vagy.</description>
<language>hu</language>
<item>
<title>$cim</title>
<link>$link</link>
<description>$hir</description>
<dc:creator>$author</dc:creator>
<dc:date>$date - $ido</dc:date>
</item>
</channel>'') === FALSE) {
echo ''Írás sikertelen: ($rss)'';
exit;
}
fclose($handle);
} else {
echo ''Nem írható a $rss!'';
}
}
?>
burgatshow
veterán
Ággrhhh:
MIért kapom ezt?
Warning: Wrong parameter count for fwrite() in C:\Program Files\Apache2\htdocs\rssmake.php on line 49
az előző kódra?? Nem értem: az fwrite-al nem lehet kiírni ekkora fájlt? vagymi?
Fisha
őstag
Hat azert mert nem adod meg a file handlet elso parameterkent.
burgatshow
veterán
A handle az mi?
Fisha
őstag
Mivel az frwrite fileba ir, tudni kell szegenynek, hogy melyik filebe irjon. Te meg is nyitod szepen a filet, azonban nem adod at a handle valtozot a fwritenak. Nalad ez a $handle. (45. sor)
[Szerkesztve]
burgatshow
veterán
Tehát akkor:
$handle = fwrite(''<rss version=\''2.0\'' xmlns:dc=\''http://purl.org/dc/elements/1.1/\''>
<channel>
<title>..::eXtreeme ModdingZ::.. hírek</title>
<link>http://xmods.uw.hu/</link>
<description>..::eXtreeme moddingZ::.. Extrém világok moddingja - extrém moddingok
világa. Nézz be, ha modder leszel, vagy vagy.</description>
<language>hu</language>
<item>
<title>$cim</title>
<link>$link</link>
<description>$hir</description>
<dc:creator>$author</dc:creator>
<dc:date>$date - $ido</dc:date>
</item>
</channel>'')
Fisha
őstag
Bővebben: link
fwrite ($handle, $string)
burgatshow
veterán
Köszi de hülyét kapok a magyar betűktől! Miért kellett nekik hosszú i e á és egyéb ilyenek??
Nem tudok rájönni miért bassza el!
Bővebben: link
faster
nagyúr
<?xml version=''1.0'' encoding=''iso-8859-2'' ?>
Szúrd be az elejére.
burgatshow
veterán
Hálám a sírig fok üldözni! Köszi!
Még 1 kérdés: az fwiretnak lehet olyan paramétert mondani, hogyha már a fájé létezik amibe írok, akkor felül írja ne pedig bele írja?
[Szerkesztve]
faster
nagyúr
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]
burgatshow
veterán
Köszi, mivel a paraméterrel nyitottam meg ezért utánna írta, viszont nekem a w kell.
még 1: az vajon megoldható, hogy 1 fájlba csak úgy írni, hogy mondjuk szöveg közé?
Tehát :
bla... bla... bla... bla... bla...
ide ír az fwrite
bla... bla... bla... bla... bla...
[Szerkesztve]
faster
nagyúr
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]
burgatshow
veterán
Végülis ez nekem is eszembe jutott csak ahhoz megkellett volna eröltetnem az agyam ami köztudottan nincs!!
Köszike!
faster
nagyúr
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]
burgatshow
veterán
Fáljírás kell nekem mert így pakolom össze az rss-t. És amikor valaki új hírt bök fel az oldalra, lefuttatja az rss.php-t aminek kimenete az updatelt xml
faster
nagyúr
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
Az. Köszi.
burgatshow
veterán
Van 1 kérdésem?? A görény miért nem cseréli le a %tartalom%-t a kivántra?
RSS:
<?xml version=''1.0'' encoding=''iso-8859-2'' ?>
<rss version=''2.0'' xmlns:dc=''http://purl.org/dc/elements/1.1/''>
<channel>
<title>..::eXtreeme ModdingZ::..</title>
<link>http://xmods.uw.hu/</link>
<description>..::eXtreeme ModdingZ::.. Extrém tuningok és modok, na meg a friss hírek világa.</description>
<language>hu-HU</language>
<xml>%tartalom%</xml>
</channel>
</rss>
PHP:
...
while ($sor = @ mysql_fetch_array($getquery)) {
$szoveg = ''
<item>
<title>''.$sor['cim' ].''</title>
<link>http://xmods.uw.hu/plugins/news/shownew.php?newsid=''.$sor['cim' ].''</link>
<description>''.$sor['hir' ].''</description>
<dc:creator>..::eXtreeme ModdingZ::..</dc:creator>
<dc:date>''.$sor['year' ].'' - ''.$sor['ido' ].''</dc:date>
</item>'';
$rss = ''xmods.xml'';
if (is_writable($rss)) {
if (!$template = fopen($rss, 'a')) {
echo ''Nem elérhető: ($rss)'';
exit;
}
$text = str_replace(''%tartalom%'', $szoveg, $template);
if (fwrite($template, $text) === FALSE) {
echo ''Írás sikertelen: ($rss)'';
exit;
}
fclose($template);
} else {
echo ''Nem írható a $rss!'';
}
}
...
XML:
<?xml version=''1.0'' encoding=''iso-8859-2'' ?>
<rss version=''2.0'' xmlns:dc=''http://purl.org/dc/elements/1.1/''>
<channel>
<title>..::eXtreeme ModdingZ::..</title>
<link>http://xmods.uw.hu/</link>
<description>..::eXtreeme ModdingZ::.. Extrém tuningok és modok, na meg a friss hírek világa.</description>
<language>hu-HU</language>
<xml>%tartalom%</xml>
</channel>
</rss>Resource id #4Resource id #5Resource id #6Resource id #7Resource id #8Resource id #9Resource id #10Resource id #11Resource id #12Resource id #13Resource id #14Resource id #15Resource id #16Resource id #17Resource id #18
faster
nagyúr
$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]
burgatshow
veterán
ja értem, viszont akkor meg azt nem értem, hogy ha megmondom ennek a szuper fosnak, hogy a $template = file_get_content($rss); akkor miért kapom ezt a görcsöt: fwrite(): supplied argument is not a valid stream resource
Pedig a $template hozáárendelés után szúrtam be még a replace elött.
faster
nagyúr
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
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.
burgatshow
veterán
Nem lehetne magyarul? Utálok fordítani:
file-handler: file kezelő?
resource: újeafejlesztés??
faster
nagyúr
Resource->erőforrás. File-handler->file azonosító. Kábé így lehet őket lefordítani.
burgatshow
veterán
Namostmár kurvára nem értem!
Van 1 RSS template fájlom ami így néz ki:
<?xml version=''1.0'' encoding=''iso-8859-2'' ?>
<rss version=''2.0'' xmlns:dc=''http://purl.org/dc/elements/1.1/''>
<channel>
<title>..::eXtreeme ModdingZ::..</title>
<link>http://xmods.uw.hu/</link>
<description>..::eXtreeme ModdingZ::.. Extrém tuningok és modok, na meg a friss hírek világa.</description>
<language>hu-HU</language>
<xml>%tartalom%</xml>
</channel>
</rss>
A php-ban pedig:
$rss = ''xmods.xml'';
$open = fopen ($rss); <- megnyitom a fájlt
$getcontent = file_get_contents($open); <- tartalmilag beleolvasok
$szoveg = ''<item>
<title>''.$sor['cim' ].''</title>
<link>http://xmods.uw.hu/plugins/news/shownew.php?newsid=''.$sor['id' ].''</link>
<description>''.$sor['hir' ].''</description>
<dc:creator>..::eXtreeme ModdingZ::..</dc:creator>
<dc:date>''.$sor['year' ].'' - ''.$sor['ido' ].''</dc:date>
</item>''; <- ezt szeretném a %tartalom% helyére írni
$text = str_replace(''%tartalom%'', $getcontent $szoveg);
$write = fwrite($getcontent, $szoveg);
Vagy nem?
faster
nagyúr
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]