Hirdetés

2024. május 4., szombat

Gyorskeresés

Hozzászólások

(#1) burgatshow


burgatshow
veterán

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! :)

(#2) burgatshow


burgatshow
veterán

Csak van valaki aki ért az XML-hez!

(#3) Fisha válasza burgatshow (#1) üzenetére


Fisha
őstag

Most az xml erdekel ugy altalaban, vagy csak konkretan az rss?

(#4) burgatshow válasza Fisha (#3) üzenetére


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.

(#5) X-COM válasza burgatshow (#4) üzenetére


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

(#6) Fisha válasza burgatshow (#4) üzenetére


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.

(#7) burgatshow válasza Fisha (#6) üzenetére


burgatshow
veterán

Köszi, de remélem nem értettél félre: engem ez a tipus érdekel: Bővebben: link

(#8) Fisha válasza burgatshow (#7) üzenetére


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. :)

(#9) burgatshow válasza Fisha (#8) üzenetére


burgatshow
veterán

Ja igen, na olyat akarok én az oldalra! :DD


Akkor rss! :D

[Szerkesztve]

(#10) Fisha válasza burgatshow (#9) üzenetére


Fisha
őstag

Szerintem az rss.lap.hu angol linkjei kozott van hasznalhato. Pl. rogton az elso.

(#11) burgatshow válasza Fisha (#10) üzenetére


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?? :F Gondolom valami PHP-s keverés van de nem vagyok benn biztos!

(#12) Fisha válasza burgatshow (#11) üzenetére


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 :)

(#13) Fisha válasza Fisha (#12) üzenetére


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.

(#14) burgatshow válasza Fisha (#12) üzenetére


burgatshow
veterán

Ez most pontosan mi a szöszt csinál? Ez pakolja össze a rss-t? :F

(#15) Fisha válasza burgatshow (#14) üzenetére


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.

(#16) burgatshow válasza Fisha (#15) üzenetére


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!-

(#17) Fisha válasza burgatshow (#16) üzenetére


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]

(#18) faster válasza Fisha (#17) üzenetére


faster
nagyúr

RSS-t könnyű összeállítani, gyakorlatilag csak egy csomó echo az egész.

(#19) Fisha válasza faster (#18) üzenetére


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.

(#20) faster válasza Fisha (#19) üzenetére


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.

(#21) burgatshow


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? :F

Valahogy így gondoltam csak ez most pont nem jó! :DDD

<?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!'';
}
}
?>

(#22) burgatshow


burgatshow
veterán

:U

(#23) burgatshow


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?

(#24) burgatshow


burgatshow
veterán

Fel!

(#25) Fisha válasza burgatshow (#23) üzenetére


Fisha
őstag

Hat azert mert nem adod meg a file handlet elso parameterkent.

(#26) burgatshow válasza Fisha (#25) üzenetére


burgatshow
veterán

A handle az mi? :F

(#27) Fisha válasza burgatshow (#26) üzenetére


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]

(#28) burgatshow válasza Fisha (#27) üzenetére


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>'')

(#29) Fisha válasza burgatshow (#28) üzenetére


Fisha
őstag

Bővebben: link
fwrite ($handle, $string)

(#30) burgatshow


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

(#31) faster válasza burgatshow (#30) üzenetére


faster
nagyúr

<?xml version=''1.0'' encoding=''iso-8859-2'' ?>

Szúrd be az elejére.

(#32) burgatshow válasza faster (#31) üzeneté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? :F

[Szerkesztve]

(#33) faster válasza burgatshow (#32) üzenetére


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]

(#34) burgatshow válasza faster (#33) üzenetére


burgatshow
veterán

Köszi, mivel a paraméterrel nyitottam meg ezért utánna írta, viszont nekem a w kell.

:B 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]

(#35) faster válasza burgatshow (#34) üzenetére


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]

(#36) burgatshow válasza faster (#35) üzenetére


burgatshow
veterán

Végülis ez nekem is eszembe jutott csak ahhoz megkellett volna eröltetnem az agyam ami köztudottan nincs!! :D

Köszike!

(#37) faster válasza burgatshow (#36) üzenetére


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]

(#38) burgatshow válasza faster (#37) üzenetére


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 :D

(#39) faster válasza burgatshow (#38) üzenetére


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.

(#40) Fisha válasza faster (#39) üzenetére


Fisha
őstag

fseek

(#41) faster válasza Fisha (#40) üzenetére


faster
nagyúr

Az. Köszi. :)

(#42) burgatshow


burgatshow
veterán

Van 1 kérdésem?? A görény miért nem cseréli le a %tartalom%-t a kivántra? :F

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

(#43) faster válasza burgatshow (#42) üzenetére


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]

(#44) burgatshow válasza faster (#43) üzenetére


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.

(#45) faster válasza burgatshow (#44) üzenetére


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]

(#46) faster


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. :)

(#47) burgatshow válasza faster (#45) üzenetére


burgatshow
veterán

Nem lehetne magyarul? Utálok fordítani:

file-handler: file kezelő?
resource: újeafejlesztés?? :F

(#48) faster válasza burgatshow (#47) üzenetére


faster
nagyúr

Resource->erőforrás. File-handler->file azonosító. Kábé így lehet őket lefordítani.

(#49) burgatshow


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?

(#50) faster válasza burgatshow (#49) üzenetére


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]

Copyright © 2000-2024 PROHARDVER Informatikai Kft.