[ Príspevkov: 71 ] 1, 2, 3
AutorSpráva
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 18.01.2017 10:50 | php HTML parser

Ja len pre istotu, že či to takto riešiš aj v tom tvojom systéme ;)
A na iframe nevidím stále nič zlé, i keď som nevidel tú konkrétnu stránku, ale samozrejme nemusím ju zobrazovať celú. Preto som napísal "stiahni to osobitným súborom" - stiahnem len to, čo chcem zobraziť (áno, vyparsujem to, ale iba jeden celý nadradený element) a tú časť si naštýlujem podľa seba. Škodlivý kód neriešim, lebo zobrazujem len časť webu (asi nejakú tabulku položiek), kde nič iné ako html určite nie je. A keď je, nič mi nebráni to prečistiť (odstrániť script tag a javaskriptové atribúty)
Ďalej mi nič nebráni toto zobrazenie cachovať, takže keď vypadne stránka (timeout dám na napr 2 sekundy), zobrazím poslednú úspešnú podobu. A keďže iframe sa loaduje asynchronne, web to nespomalí, práve naopak, zrýchli :)


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13415
Témy: 1494 | 1494
Bydlisko: Bratislava
NapísalOffline : 18.01.2017 11:16 | php HTML parser

Ano riesim, ale mam to tam vsetko osetrene od moznych chyb, cize preto je ten parser pre jeden portal 3-4 vecsi. Jasne ze ak by to bola jedna stranka tak budis, ale ja som predpokladal ze ten mokusov link bude normalna html stranka, lebo som uz odtial nieco take raz videl, je tam aj strankovanie navyse. Ano da sa to aj tak ako pises, ale ked sa zmeni nieco v html, nahodou ti prestane fungovat css ktore prepisuje design, tak mas zas rozbitu stranku v tom iframe, cize php parser je zas lepsi, lebo to budes mat stale tak isto s tou poslednou verziou, ale cez iframe by si musel potom tiez stale zistovat ci tam nie je zmeneny class pri nejakom dive, takze je to o tom istom, len navyse musis prepisovat css, cez php parser nie, spravis to v dizajne svojho webu, ale pri akejkolvek zmene ti to prestane fungovat v jednom aj v druhom pripade tak naco si stranku kazit iframom, aspon moj nazor, mozno sa v niecom pletiem.


_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 18.01.2017 17:36 | php HTML parser

Ak niečo zmenia v mojom riešení, tak všetky informácie ostanú zobrazené, len si to znovu prispôsobím, ak sa mi to nebude páčiť.
Ak tam niečo zmenia tebe a budeš trebárs akurát na dovolenke, tak si pár dní bez informácií.
Takže záleží aj na tom, ako veľmi ti vadia výpadky.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13415
Témy: 1494 | 1494
Bydlisko: Bratislava
NapísalOffline : 18.01.2017 17:53 | php HTML parser

Ak mas ale nejaky pekny dizajn, tieto stahovene data v nom a zrazu sa ti zacne zobrazovat nejaky hnus, tak to tiez nie je nieco extra a pri parsovani zas kym budem teda na dovolenke tak sa tam bude zobrazovat posledna funkcna verzia ale s mojim peknym dizajnom stale a bez vypadku, zas tu neriesime bankove operacie, ci nieco podobne, ale zoznam z autobazaru, ktory sa aktualizuje raz za cas predpokladam a ked je mokus na dovolenke tak ho asi nebude nejako zasadne ovplyvnovat a tym padom aj keby tam bol vypadok, tak tam je stale posledna funkcna verzia. Cize je to vec pohladu ci pozeras na to, ze mas pohar poloplny alebo poloprazdny :) lebo v pripade len vlastnej css verzie ak by si to stahoval, tak tam to tiez predsa budes nejako parsovat data aby si vytiahol len danu cast ktoru zobrazis cez iframe, ale co ked sa dana cast cela zmeni, tak sa ti nacita aj tak len nejaka posledna verzia ak si to tam spravis, cize zostanes na tom tak isto na tej dovolenke.


_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 18.01.2017 20:07 | php HTML parser

Ja viem, že každý má svoju pravdu, ale nedá mi to, aj tak sa mýliš :lol:
Bavme sa teraz o situácií, kedy potrebujem len zobrazovať aktuálne informácie na svojom webe niekde v sidebare ako widget. Dajme tomu, že sú to posledné pridané inzeráty na autobazar.eu.
Ty to spravíš parserom, takže si vyparsuješ názov inzerátu (tam je značka, typ vozidla...), fotku a parametre vozidla. Takto sparsuješ tabulku vozidiel a vypíšeš ich k sebe na web.
Ja to spravím tak, že si vyseknem z html len tú tabulku, naštýlujem aby sa mi to hodilo na web (background color a farby základných tagov budú fungovať vždy, aj keď zmenia neviem čo...) a zobrazím cez iframe.

Beží to tri mesiace bez problémov aj u teba aj u mňa. Po troch mesiacoch si povedia, že zrušia názov inzerátu a oddelia značku vozidla do samostatných vlastností (značka, typ). Obaja si to všimneme o 5 dní. Čo sa stane?

1. Ty bežíš otvárať kód a pracne dopĺňaš regexy a nové stĺpce do databáze/dátovej štruktúry/čohokoľvek. Uživatelia sú medzi tým nasr, lebo na tvojej stránke už 5 dní nevidia nové inzeráty. Buď ich vidia bez názvu auta, alebo v horšom prípade 5 dní starú zálohu. Nejaké precento tvojich užívateľov odchádza ku mne.

2. Pozriem sa na to a zisťujem, že vlastnosti mám fasa naštýlované, riadok pre názov zrušili, takže pohoda, ďalej srkám džús cez slamku a čekujem google analytics, že mám nejaký veľký traffic :D


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.02.14
Prihlásený: 19.01.18
Príspevky: 443
Témy: 9 | 9
NapísalOffline : 19.01.2017 10:20 | php HTML parser

BX: ako chces zmenit css v iframe?
a druha otazka, preco pouzivat iframe ked "si vyseknem z html len tú tabulku" ? vlozis to priamo ako html. alebo som nieco nezachytil?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 19.01.2017 12:06 | php HTML parser

V rámci jednoduchosti, bezpečnosti a rýchlosti by som to určite neťahal rovno do html pri loade hlavnej stránky. Miesto toho (ako som písal na začiatku) to urobím v separátnom php súbore, kde môžem využiť timeout na spojenie a do iframe natiahnem ten (čiže do iframe naťahujem mnou pripravený kód, nie pramo ich). No a tam si môžem robiť čo chcem, napr. na začiatok pridať css, vyčistiť javascripty, podhodiť verziu z cache atď.

V takomto prípade moja hlavná stránka vôbec netrpí načítaním nejakých externých dát, pretože sa natiahnu asynchronne a zároveň vždy aktuálne.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
Napísal autor témyOffline : 20.01.2017 20:39 | php HTML parser

JanoF, vďaka za návod, snáď niečo z toho aj pochopím, inak sa mi robí dosť ťažko so skriptami, ktoré som nevytvoril sám, ale určite mi to pomôže pri štúdiu nových, nepoznaných vecí,
mimochodom dostal som od autobazaru aj xml súbory s dátami, obsahujú všetko čo potrebujem, tak teraz sa môžem učiť, ako to spracovať,

momentálny stav je taký, že stránka je hotová v tej mojej prvej verzii s parserom, ale je bez akéhokoľvek zálohovania, čo veru nie je to najvhodnejšie riešenie, v podstate v takejto podobe je stránka funkčná a môže byť funkčná, ale iba do doby, kým sa niečo v zdroji nezmení, ako som už písal, pri výpadku alebo zmenách na zdroji, bude výpadok aj na mojej stránke, nemám zatiaľ možnosť využiť žiadnu poslednú funkčnú verziu, takže idem to zdokonalovať

ešte raz vďaka všetkým za pomoc


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 20.01.2017 21:04 | php HTML parser

No vidíš, tak predsa máš feed. Skús použiť to xml, len to pre boha neparsuj :D Na spracovanie xml nájdeš funkcie priamo v php.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
Napísal autor témyOffline : 20.01.2017 22:05 | php HTML parser

jasné, vďaka

@JanoF: ten tvoj skript som prezrel iba zbežne, je celkom zrozumiteľný, ale s konečným spracovaním týchto dát by som mal asi dosť problém, musím si to zrovnať v hlave ako ďalej postupovať, a hlavne ktorú variantu ďalej riešiť, asi to najprv skúsim
s tým feedom


Offline

Skúsený užívateľ
Skúsený užívateľ
php HTML parser

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66 | 66
Bydlisko: Žilina
NapísalOffline : 20.01.2017 23:09 | php HTML parser

Keď máš k dispozícii feed, čo chceš zrovnávať v hlave? Tu nie je o čom... V takom prípade je riešiť nejaké parsovanie html strata času.


_________________
C#, PHP, ...
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13415
Témy: 1494 | 1494
Bydlisko: Bratislava
NapísalOffline : 21.01.2017 12:02 | php HTML parser

Presne tak, ak mas xml, tak nie je o com


_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
Napísal autor témyOffline : 22.01.2017 19:08 | php HTML parser

tak začal som na tom xml pracovať, dáta už mám v DB, avšak s jedným problémom, z XX obrázkov(môže byť aj viac než 100) mi uloží iba jeden, tu je príklad xml:
príklady som výrazne zostručnil, čo sa týka počtu položiek ($row),
Kód:
<item>
        <idserver>4068760</idserver>                                         
         <dir>5451</dir>                                                       
        <pics>5</pics>                                                       
          <image>http://pics.bazar.eu/5451/4068760_1.jpg</image>     
          <image>http://pics.bazar.eu/5451/4068760_2.jpg</image>
          <image>http://pics.bazar.eu/5451/4068760_3.jpg</image>
          <image>http://pics.bazar.eu/5451/4068760_4.jpg</image>
          <image>http://pics.bazar.eu/5451/4068760_5.jpg</image>
        <safety>|1|5|7|8|9|10|11|19|20|22|23|</safety>                         
</item>

a tu script ktorým to ukladám:
Kód:
$url = "zdrojový link xml";
$xml = simplexml_load_file($url);
$con = dbconnect($db_host, $db_user, $db_pass, $db_name);
foreach($xml->item as $row) {
        $idserver = $row->idserver;                                                                         
        $dir = $row->dir;
        $pics = $row->pics;             
        $image = $row->image;             
        $safety = $row->safety;           
  $result = dbquery("INSERT INTO xml_item (idserver,dir,pics,image,safety) VALUES ('$idserver','$dir','$pics','$image','$safety')"
  );   
}   



otázkou je, ako spracovať <image>, tak aby to nahralo do DB všetky,
skúšal som xml converter a ten tie obrázky uložil všetky a do jednej položky, ale vzhľadom k tomu, že ten converter je obmedzený, tak som sa to rozhodol urobiť ručne podľa vyššie uvedeného scriptu


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13415
Témy: 1494 | 1494
Bydlisko: Bratislava
NapísalOffline : 22.01.2017 19:18 | php HTML parser

Si si vedomy, ze mas X obrazkov a jeden insert? toto mas blbo navrhnute, na obrazky si vytvor dalsiu tabulku kde budes mat stlpce s id daneho inzeratu ktory vytvaras tymto insertom a druhy bude ten tvoj image a takto budes mat X obrazkov s danym ID ktory patri ku konkretnemu inzeratu, alebo potom jedine ze nasukas vsetky obrazky do toho tvojho stlpca image a oddelis ich trebars ciarkou a dalej to tak budes musiet samozrejme aj spracovat na vystupe.

Pouzivaj var_dump aby si videl co sa v premennych nachadaza a az nasledne potom ries samotne vlozenie do db.


_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
Napísal autor témyOffline : 22.01.2017 19:43 | php HTML parser

prepáč, ale v podstate nechápem, ako natiahnem tie obrázky, keď majú rows rovnaký názov? akosi mi dnes nepáli, keby som toto vedel, tak to spracujem hneď v prvom kroku

a nedalo by sa dať do foreach ďalší cyklus pre <image> ?

lebo riešiť to ďalšou tabuľkou asi nebude naj rýchlejšie riešenie, nehovoriac o tom, že celý XML zdroj sa skladá z 11-tich samostatných url, a každé musím nahrať do samostatnej tabuľky, a tiež potom tie dáta z nich prácne pospájať, takže pridať ďalšiu tabuľku? -> už teraz mi z toho vlasy dupkom stoja


Offline

Správca fóra
Správca fóra
php HTML parser

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39 | 39
NapísalOffline : 22.01.2017 20:28 | php HTML parser

<item> elementy prechádzaš foreach cyklom, pre <image> musíš mať vlastný vnorený cyklus, aby sa spustil pre všetky obrázky v každom item-e.
Prečo to dávaš do viacerých tabuliek? Príznakový stĺpec by ti nepomohol aby stačilo použiť len jednu? Komplikuješ si zbytočne život podľa mňa.


_________________
always is always wrong
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
Napísal autor témyOffline : 22.01.2017 20:41 | php HTML parser

len pred chvíľkou som sa pýtal, či tam ide vložiť vnorený cyklus, možno aj ide, lenže ja neviem ako, okrem iného stále visím na tom rovnakom názve položky<image>, aj okrem toho s vnorenými cyklami nie som veľmi kamarát,

a ty by si ako komplikoval svoj život, keby ti zdroj dodal dáta v niekoľkých tabuľkách? alebo mám vytvárať zložitý script, ktorý mi dokáže prepojiť tie dodané(pomocné) xml súbory len do jedného(hlavného)? pochybujem, že by som to vôbec dokázal a tiež by som si tým len komplikoval svoj život
toto: <safety>|1|5|7|8|9|10|11|19|20|22|23|</safety> potrebuje ďalšiu tabuľku, kde je priradený určitý text k tým číslam, a nie je to jedna položka, ako som písal je ich celkom 11, jeden hlavný a 10 upresňujúcich,
ja ich nevytváram, ja ich dostávam a musím spracovať

to len aby si pochopil, prečo si komplikujem život,
ale ak máš dobrý tip, tak sem s ním


Offline

Správca fóra
Správca fóra
php HTML parser

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39 | 39
NapísalOffline : 23.01.2017 8:00 | php HTML parser

Tak som ti odpovedal, áno, jedno z riešení je vnorený cyklus. Na otázku, ako by som si ja život komplikoval je jednoduchá odpoveď - nekomplikoval.

Nevieš robiť ani s najjednoduchším cyklom, hlavne že riešiš krutoprísnu aplikáciu na parsovanie html, ktorá musí byť odolná voči výpadku zdroja z ktorého je nakoniec, len tak mimochodom aj xml.
Veľa šťastia ak budeš robiť niečo naozaj vážne, s čím sa aj priemerný programátor stretáva denne. Potom tiež povieš že nie si s tým kamarát tak sa na to vykašleš, nedokončíš a neodovzdáš robotu? Keby som programoval týmto štýlom, nezarobím ani na slanú vodu. ;)
Vo svojom vlastnom záujme, ak chceš naozaj vedieť čo a ako sa robí a nielen kopírovať hotové polofunkčné zdrojáky z internetov a pokúšať sa ich nejako upraviť aby z toho nakoniec aspoň približne "vypadlo" to, čo chceš (viď. tvoja predchádzajúca snaha s DOM a html?), by si mal vedieť aspoň základné veci, podmienky, cykly a polia - keď už nič ďalšie, aby si aspoň rozumel tomu, čo kopíruješ keď si sa vzdal ambície napísať si vlastný kód na mieru. Bez toho sa budeš len trápiť aj s vecami na ktoré existuje jednoduché a elegantné riešenie. Tiež by nebolo na škodu poriadne a podrobne popísať, čo máš k dispozícií (štruktúra xml) a čo chceš (kam a v akom tvare dostať výstup, ktoré informácie na to z xml potrebuješ a ktoré sú pre tvoje potreby zbytočné), lebo takto sa ďaleko nedostaneme a bude sa to len zbytočne komplikovať.

Vychádzam z toho čo je tu v téme, keď to nenapíšeš, nemôžem vedieť a domýšľať si. Stále si ma nepresvedčil že to riešenie máš dobre navrhnuté.
Na to tu predsa sme, aby sme ti skúsili pomôcť, ale musíš chcieť a my musíme mať všetky informácie stručne a prehľadne, nie že to z teba až nakoniec po x stranách snahy a zabitého času vypadne. Všimni si, že o nejakom <safety> píšeš teraz prvýkrát, doteraz si riešil obrázky a už to začína byť pekne neprehľadné.
Chcel som ti len pomôcť urobiť to tak, aby si sa nad tým potom nezbláznil, pretože z toho čo si napísal som mal dojem že chceš mať niekde v databáze niekoľko tabuliek pre odkazy na obrázky (11?) a to - hovor si čo chceš, v tomto prípade nie je dobrý spôsob.

Máš v téme neporiadok, najprv html, teraz máš už aj xml, tak hurá sláva, možno ani nevieš ako, no úspešne si ho dokázal previesť na php objekty, no bohužiaľ asi ani s nimi nie si veľmi kamarát, však?
_________________
Toľko môj názor, poďme byť trochu produktívni...
Na začiatok len malá ukážka, aby si videl, aké máš napríklad možnosti v tvojom ťažkom boji. Úprimne dúfam že používaš aspoň normálny editor. Kód som ti okomentoval, tak snáď sa budeš vedieť z neho vysomáriť a aspoň rámcovo pochopíš o čo ide. Ak nie, pýtaj sa, vysvetlíme.

Kód:
$url = 'cesta k xml suboru';
$xml = simplexml_load_file($url);

// hint#1: skus nasledujuci riadok odkomentovat, spustit a zobrazit si zdrojak vystupu v prehliadaci, mozno sa ti rozsvieti
//print_r($xml); exit;

$images = array(); // nejake prazdne pole, hmmm, co s nim?...vyuzijeme na demonstracne ucely

foreach ($xml->item as $item) {
    // vo vonkajsom cykle mas POSTUPNE kazdy element <item> ako obsah premennej $item
    // odkazy na obrazky (elementy <image>) su v objekte ulozene ako pole, taaaaaakze aj to musis prechadzat dalsim cyklom v cykle, frstenzi?
   
    foreach ($item->image as $image) {
        // vo vnorenom cykle mas vsetky obrazky ku kazdemu <item>-u ako objekty, co je zbytocne, pretypujes ich teda na retazce...
        // Ze cooo? ...To je ta zatvorka pred nazvom premennej, explicitne pretypovanie (viac informacii? Hladaj "PHP Type Juggling")
        $image = (string) $image;

        // tu s odkazom na obrazok z premennej $image urob co len chces
        // ...
        // ...
       
        // trebars ho vloz do pola
        $images[] = $image;
    }

    // aj tu mozes s <item>-om nieco robit, ale s premennou image uz nie
    // (v premennej $image ti zostane odkaz na obrazok z poslednej iteracie vnoreneho cyklu, niekedy sa to moze hodit)

}

// odtialto uz nerobis s <item>-om, uz nie si v cykle!

// ta-daaa, aj toto mozes, odkomentuj nasledujuci riadok
//print_r($images); // hint#2: zobraz si zdrojak vystupu, bude prehladnejsi


_________________
always is always wrong
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
Napísal autor témyOffline : 23.01.2017 13:34 | php HTML parser

Citácia:
a podrobne popísať, čo máš k dispozícií (štruktúra xml) a čo chceš (kam a v akom tvare dostať výstup, ktoré informácie na to z xml potrebuješ a ktoré sú pre tvoje potreby zbytočné), lebo takto sa ďaleko nedostaneme a bude sa to len zbytočne komplikovať.

v príklade zo včera je podľa mňa jasné o čo mi ide,
vyskúšal som tvoj príklad, s touto variantou som už experimentoval, ale neúspešne, je mi zrejmé čo vypíše print_r(), ale ako to dostať do DB, to už je nad moje sily


Offline

Skúsený užívateľ
Skúsený užívateľ
php HTML parser

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66 | 66
Bydlisko: Žilina
NapísalOffline : 23.01.2017 13:58 | php HTML parser

Nehnevaj sa, ale začínam súhlasiť s killerom. Ťažko takto pomôcť... Ľudia ti tu dávajú už pomaly hotové kódy a jediné, čo z teba vypadne, je, že si nebol úspešný a že je to ťažké. Killer sa rozpísal a reakcia prakticky nula bodov. Tak ja neviem... Myslel si si, že programovanie je o zlepení pár kúskov kódu a zrazu máš funkčnú aplikáciu, či ako to máme chápať? Očividne máš problémy aj s úplnými základmi, tu je potom ťažko radiť nejaké riešenia. Po teoretickej rovine ti bolo vysvetlené už hádam všetko, stačí to už len dokončiť. Ak aj tak nevieš...
Ono je fajn, že chceš kamarátovi vypomôcť, ale ja sa tiež kamarátom neponúkam, že im vypracujem protokol do chemického labáku, keď o tom nemám ani potuchy. Aby sa ti reálne dalo pomôcť, vyzerá to tak, že by ti to musel buď niekto kompletne naprogramovať alebo ťa začať doučovať od úplného začiatku. Toto je prinajlepšom lepenie kusov dokopy.


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
Napísal autor témyOffline : 23.01.2017 14:27 | php HTML parser

ja viem, každý je tu múdry a všetko je za peniaze,

hlboko sa ospravedlňujem, a prepáčte mi, že som vás okrádal o váš drahocenný čas, kým vy ste zatiaľ mohli zarábať ťažké love,

máte len jednu chybu, krátku pamäť, už ste zabudli, že aj vy ste začínali

JanoF, prosím zamkni túto tému, ja už nemám na vás inú prosbu, a na invektívy nie som zvedavý


Offline

Správca fóra
Správca fóra
php HTML parser

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39 | 39
NapísalOffline : 23.01.2017 14:29 | php HTML parser

Ak ti nedošlo, že som sa snažil ušetriť hlavne tvoj čas, ktorý nad tým presedíš, tak potom to naozaj nemá zmysel.
Rád by som ale videl tie invektívy o ktorých píšeš, než to tu upracem.


_________________
always is always wrong
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
Napísal autor témyOffline : 23.01.2017 14:32 | php HTML parser

písal som o možných invektívach na môj posledný príspevok, a ak si mi chcel pomôcť, ďakujem ti, všetkým patrí vďaka, ktorí mi pomohli, ale sú tu aj ľudia, ktorí hodnotia človeka bez toho aby ho poznali,


Offline

Správca fóra
Správca fóra
php HTML parser

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39 | 39
NapísalOffline : 23.01.2017 14:43 | php HTML parser

Dobre, tak teda možné invektívy :lol: ja vidím len jedného ľuda, čo hodnotí ostatných bez toho aby ich poznal, ale radšej nič...

Každopádne, téma už nie je už prehľadná a zrejme máš skrytý pocit že sme tu všetci proti tebe.
Ak budeš mať konkrétny problém s kódom ktorý som ti poslal, respektíve jeho experimentálnou verziou o ktorej píšeš a budeš chcieť s tým pomôcť, buď prosím taký dobrý a dodaj aspoň chybovú hlášku, ak si nejakú dostal, alebo popis správania konkrétneho kódu, pretože "skúšal som, nefungovalo" nám vážne v ničom nepomôže. Naozaj nemám vešteckú guľu aby som videl kde ti čo nefunguje a ktoré tvoje pokusy kde zlyhali.

Ďakujem a ostávam s pozdravom.


_________________
always is always wrong
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
Napísal autor témyOffline : 23.01.2017 15:00 | php HTML parser

to hodnotenie bez poznanie je nákazlivé

písal som predsa, že ten print_r() mi tie obrázky síce vypíše, ale výsledok z toho vnoreného cyklu neviem začleniť do "behu udalostí", tak aby sa to aj zapísalo do DB na správne miesto,
tvoj script mi dáva jedno Notice: Array to string conversion in E:\server\... (samozrejme zopakuje si to počtom cyklov) ale to mi až tak nevadí,
takto som to skúšal:
Kód:
$url = "zdrojový link xml";
$xml = simplexml_load_file($url);
$con = dbconnect($db_host, $db_user, $db_pass, $db_name);
foreach($xml->item as $row) {
        $idserver = $row->idserver;                                                                         
        $dir = $row->dir;
        $pics = $row->pics;
           foreach($row->image as $img){
            $img = (string) $img;
            $image[] = $img;
           }             
        //$image = $row->image;             
        $safety = $row->safety;           
  $result = dbquery("INSERT INTO xml_item (idserver,dir,pics,image,safety) VALUES ('$idserver','$dir','$pics','$image','$safety')"
  );   
}           
 print_r($image);

to moje predchádzajúce experimenty s vnoreným cyklom boli neúspešné a nemá zmysel písať o ich výsledku, jednoducho som mal špatne napísaný script


Offline

Správca fóra
Správca fóra
php HTML parser

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39 | 39
NapísalOffline : 23.01.2017 15:17 | php HTML parser

Konečne sa niekam dostávame.
Stále si nám ale neprezradil, akým spôsobom budeš ukladať obrázky, pretože ako si už včera sám zistil, tie musíš ukladať inak ako ostatné riadky.
Nemôžeš vložiť premennú $image, ktorá je pole do SQL databázy cez obyčajný INSERT.
Ak budeš obrázky ukladať v samostatnej tabuľke (teda jedna tabuľka na item-y, druhá k nej pripojená na obrázky), jedným INSERTom vložíš všetko čo teraz, okrem obrázkov a potom vo vnorenom cykle vložíš ešte ďalším INSERTom (ten sa spustí pre každý obrázok) obrázky do tabuľky v ktorej jeden stĺpec bude nejaký identifikátor ktorým budeš vedieť jednoznačne priradiť obrázky k itemom.


_________________
always is always wrong
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 23.01.2017 15:38 | php HTML parser

Dalšia možnosť, ak niagraz nevieš, ako to narvať do databáze, môžeš si automaticky vytvoriť priečinok (funkcia mkdir), tam všetky obrázky uložiť (file_get_contents, file_put_contents) a do databáze si uložiť len názov priečinka s obrázkami. Tie potom vieš všetky prečítať funkciou readdir.

Ale všeobecne je oveľa lepší spôsob narvať to do databáze. Myslím, že nie je ťažké toto $image[] = $img; prepísať na insert do tabulky "obrazky" ;)


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
php HTML parser

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
Napísal autor témyOffline : 23.01.2017 15:42 | php HTML parser

čo sa týka obrázkov, chcem uložiť ich adresu, to čo je v <image> do jedného stlpca, oddelené by mohli byť napr. čiarkou, to už dokážem spracovať
toto idem vyskúšať,
len ma teraz napadla myšlienka, či by som mohol použiť pri vnorenom cykle INSERT do DB, (lebo toto sa podľa mňa vykoná skôr, než INSERT po hlavnom cykle) a po hlavnom cykle by som použil UPDATE DB, pričom určovacím kľúčom by bola položka $idserver, a nemusel by som vytvárať samostatnú tabuľku pre obrázky, ale môžem sa aj mýliť


Offline

Skúsený užívateľ
Skúsený užívateľ
php HTML parser

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66 | 66
Bydlisko: Žilina
NapísalOffline : 23.01.2017 16:12 | php HTML parser

Samostatnú tabuľku pre obrázky potrebuješ.


_________________
C#, PHP, ...
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
php HTML parser

Registrovaný: 01.05.05
Príspevky: 13415
Témy: 1494 | 1494
Bydlisko: Bratislava
NapísalOffline : 23.01.2017 16:19 | php HTML parser

Mozno ti pomoze ine vysvetlenie tvojho problemu. Mas skatulku v ktorej je napriklad 50 dalsich skatuliek (to su tie tvoje vsetky inzeraty), kazda z tych 50 skatuliek obsahuje jeden papier a 30 guliciek (papier su tie tvoje data co chces do insertu dat, gulicky su fotky), mas sanon kam mas kazdy tento papier z tych 50 skatuliek zalozit, no do sanonu ale gulicky asi nenarves, cize to spravis inac a to tak, ze zoberies skatulku, napises na nu cislo a toto cislo napises na dany papier a zalozis do sanonu, ci uz spracujes gulicky skor ako sanon alebo naopak je jedno, ide to aj tak aj tak, no ale budes vediet ze sanon s cislom 12 patri ku skatulke s cislom 12, to jest tie dve rozne tabulky, cize jedna tabulka je ten sanon, kde mas tieto papiere a druha tabulka je urcena na tie skatulky kde ale kazda gulicka bude mat cislo zo sanonu, takto vies ze je tam priradena.

Killer ta naviedol dobre, mas jeden cyklus, v ktorom ked sa dostanes k obrazkom (gulickam) bud ulozis do pola a spracujes az po spracovani toho tvojho insertu, alebo to spravis tak ako spomenul bx a nahras do adresara s id tvojho insertu ktory dostanes po vlozeni. Ty chces v tom svojom poslednom zdrojaku narvat gulicky do sasnonu co proste nejde, bud ich tam cez implode() sprav ako si chcel ze ich oddelis ciarkou

cize takto
Kód:
$result = dbquery("INSERT INTO xml_item (idserver,dir,pics,image,safety) VALUES ('$idserver','$dir','$pics','implode(",", $image)','$safety')"


co je ale samozrejme blbe riesenie, cize to sprav tak ze stlpce image odtial jednoducho vyhod, spracujes tento svoj insert, zistis si hned za tym posledne id insertu cez last insert a nasledne toto id pouzijes pri dalsom foreachu kde naplnis tabulku uz priamo s odkazmi na obrazky

Kód:
foreach ($image as $i) {
     dbquery("INSERT INTO xml_item_fotky (id,image) VALUES ('ID_posledneho_insertu','$i')"
}



id posledneho insertu lastInsertId() http://php.net/manual/en/pdo.lastinsertid.php ak pouzivas PDO
mysqli_insert_id http://php.net/manual/en/mysqli.insert-id.php ak pouzivas mysqli


_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS
 [ Príspevkov: 71 ] 1, 2, 3


php HTML parser



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

PHP simle html DOM parser

v PHP, ASP

3

412

09.04.2013 21:22

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

HTML parser web stranok

v PHP, ASP

4

606

16.11.2007 15:41

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

PHP programátor - PHP, MySQL, jQuery,X)Html/CSS

v Ponuka práce

0

1362

02.05.2011 12:08

magicmedia

V tomto fóre nie sú ďalšie neprečítané témy.

HTML+PHP

v HTML, XHTML, XML, CSS

12

1190

21.02.2008 20:20

jablko05

V tomto fóre nie sú ďalšie neprečítané témy.

PHP alebo HTML

v HTML, XHTML, XML, CSS

16

905

07.01.2011 10:21

Ando

V tomto fóre nie sú ďalšie neprečítané témy.

CSS- php,html

v HTML, XHTML, XML, CSS

3

713

15.09.2009 21:08

1daemon1

V tomto fóre nie sú ďalšie neprečítané témy.

Kliknutie PHP alebo HTML

v JavaScript, VBScript, Ajax

25

1024

23.03.2009 21:33

7diwad7

V tomto fóre nie sú ďalšie neprečítané témy.

s HTML do PhP

v PHP, ASP

12

893

22.10.2009 15:19

BYNGY

V tomto fóre nie sú ďalšie neprečítané témy.

z PHP do HTML

v PHP, ASP

2

481

12.07.2010 12:04

vama

V tomto fóre nie sú ďalšie neprečítané témy.

Vytiahnutie PHP kódu z HTML

v PHP, ASP

3

438

07.08.2016 12:09

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

Hladam programatora HTML + PHP - brigada

v Dopyt práce

0

527

02.06.2024 15:03

spd

V tomto fóre nie sú ďalšie neprečítané témy.

Tvorba webstranok HTML alebo PHP?

v Vzdelanie, štúdium, škola

9

714

18.12.2013 11:28

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Ponuka práce html, css, php

v Ponuka práce

1

1360

10.11.2007 22:19

Ivuso

V tomto fóre nie sú ďalšie neprečítané témy.

prepojenie php html a css

v PHP, ASP

4

1344

28.01.2009 22:18

mybirthday1403

V tomto fóre nie sú ďalšie neprečítané témy.

Dual combobox v HTML/PHP

v HTML, XHTML, XML, CSS

5

855

14.04.2015 17:47

void

V tomto fóre nie sú ďalšie neprečítané témy.

Praha - PHP, MySQL, HTML, Joomla

v Ponuka práce

0

1294

31.07.2007 17:01

Blue Media



© 2005 - 2024 PCforum, edited by JanoF