XMLReader vagy XML Parser
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
XMLReader vagy XML Parser
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
Ki, hogy szokott háttérben lefutó dolgokat tesztelni/debuggolni?
Modelben mentés után akarok még csinálni valamit. Elvileg mennie kellene, de mégsem megy le. Lehet valami adatot nem kap meg, vagy hasonló.
Ötlet erre?
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
(#12003) Tele von Zsinór válasza Speeedfire (#12002) üzenetére
Erre valóak a debug szintű logüzenetek.
(#12004) Speeedfire válasza Tele von Zsinór (#12003) üzenetére
Közben megoldottam beépített log-olással.
A probléma meg annyira egyszerű volt, hogy csak nem bökte ki a szememet.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
(#11999) Tapsi :
ha már rákérdezel fórumon, segítséget is kapsz, akkor illik azt is megírni, hogy végül mivel oldottad meg.
Amúgy igazából nem értem, miért jó ez így neked, hogy XML-ben adod vissza a választ, ha már meglenne a módszer arra is, hogy szépen objektumokban és/vagy tömbökben kapd meg a választ, ami könnyen kezelhető...
így csak raksz egy tök felesleges overheadet az egészre. Mármint a kliensoldalra, a szerveroldalon nálad nem tudom, mi a helyzet (pl. miért így XML-ben kell visszaadnod).
[ Szerkesztve ]
Sk8erPeter
Természetesen hamarosan megírom a teljes kódot, de még nem vagyok vele kész.
A gond az, hogy SOAP-on keresztül távoli szerverről kapok egy objektumot, ami egy XML-fát tartalmaz. Férfiasan bevallom, hogy ez teljesen új terület számomra, és örülök, hogy egyáltalán sikerült megoldani, mert a határidő bizony sürget. Szóval szeretném először átlátni nagyjából ezt az egész témakört, és utána majd reszelek még a kódon.
Hab a tortán, hogy elég sok adatról van szó, amelyet SQL-be kell közben írni (több tízezer node).
Szerk:
Érdekesség, hogy az XMLreader csak akkor működött, amikor a stringből kinyestem ezt:
<valasz xmlns="" verzio="1.0">...</valasz>
Ezt követően tökéletesen beolvasta a fát. Erre valami ötlet a szakiktól?
<?xml version="1.0" encoding="UFT-8" ?><any><valasz xmlns="" verzio="1.0"><hiba><kod>3</kod><leiras>Túl sok kérés </leiras></hiba></valasz></any>
[ Szerkesztve ]
Órák óta küzdök egy problémával, valami nagyon bagatell dolog lesz megint de egyszerűen nem látom a hibát.
Adott egy fájl amibe behúzok egy másikat - ami egy osztályt tartalmaz- ugyanabból a könyvtárból. Ebben a fájlban szintén behúzok egy másikat ugyanabból a könyvtárból. Illetve csak behúznék mert nem húzza be.
Tehát a 3 fájl egy könyvtárban van, másodjára azonban már nem tudok behúzni semmilyen fájlt ugyanabból a könyvtárból. Az egyel kijjebb lévőből viszont igen. Szóval nem értem. Hibaüzenettel nem tudok szolgálni. A fájlok jogosultsága 644.
Jöhetnek az ötletek.
"hacsak nem jön a jó tündér break utasítás képében..."
Nem ártana, ha az UFT-8 helyett UTF-8 lenne használva.
Mondjuk ettől még gondolom nem ez a para. Az a baj, hogy eléggé általánosságokat írsz, szóval nehéz kitalálni, most mi a pálya. Végül is most akkor a $result objektumodban mi van? Azt írtad, valamiért htmlentities-zel nálad üres string jön vissza, pedig az nem túl normális, de lehet, hogy korábban rossz sorrendet mutattam, már nem emlékszem
szóval próbáld meg megint kiíratni (vagy fájlba, mindegy):
echo ' <pre>', htmlentities(var_export($result, TRUE)), '</pre>';
erre mit kapsz eredményül?
Sk8erPeter
Hiba keletkezik vagy egyszerűen nem éred el a file-t ? Most megprobáltam igy :
test.php :
include 'test2.php';
echo __FILE__ . '<br>';
test2.php :
include 'test3.php';
echo __FILE__ . '<br>';
test3:
include 'test3.php';
echo __FILE__ . '<br>';
Tökéletes . Ha ezt megprobálod mi történik?
Átírtam, de nyilván nem ez volt a gond. Kösz, hogy szóltál.
Ezt a classt használtam végül: [link]
A kód jelenleg így néz ki:
$client = new SoapClient('http://....asmx?WSDL',array("trace" => 1,"exceptions" => 0,'features' => SOAP_SINGLE_ELEMENT_ARRAYS));
$result=$client->GetCikkekKeszleten(array('web_update'=>'2012-11-20-11:00'));
$t1 = new XMLSerializer;
$re = $t1->generateValidXmlFromObj($result->GetCikkekKeszletenResult,"","");
$re = htmlspecialchars_decode($re);
$re = str_replace(array("</valasz>",'<valasz xmlns="" verzio="1.0">'),array("",""),$re);
Ez már egy normális XML-fát ad vissza. Egyelőre fájlba írom, de lehet, hogy kihagyom ezt a köztes lépést, és rögtön feldolgozom. Továbbra is a nagy adatmennyiség a probléma.
Az XML feldolgozó:
$z = new XMLReader;
$z->open('tmp.xml');
$doc = new DOMDocument;
while ($z->read() && $z->name !== 'cikk');
while ($z->name === 'cikk'){
$node = simplexml_import_dom($doc->importNode($z->expand(), true));
$ki .= '<tr><td>'.$node->cikkid.'</td><td>'.$node->cikkszam.'</td></tr>';
$z->next('cikk');
}
?>
Az XML pedig így néz ki:
<?xml version="1.0" encoding="UTF-8" ?>
<any>
<cikkek>
<cikk><cikkid>93038</cikkid><cikkszam>SKNB52</cikkszam></cikk>
<cikk><cikkid>93038</cikkid><cikkszam>SKNB52</cikkszam></cikk>
<cikk><cikkid>93038</cikkid><cikkszam>SKNB52</cikkszam></cikk>
</cikkek>
</any>
[ Szerkesztve ]
Nyilván nem kétszer includeoltam a test3-mat csak kopipészteltem.
$soapresult = $soapclient->GetArlista(array('pid'=> $pid, 'partnerkod'=> $partnerkod));
fputs($logfd, $soapresult->GetArlistaResult->any);
híváskor : (soapclient)->(funkció)
xml válasz : (soapclient)->(funkció)Result->any
Egyszerű életet élek. Ami üres megtöltöm, ami tele van kiűritem
sok adat -> timeout. DOM felejtős. regex a barátod
Egyszerű életet élek. Ami üres megtöltöm, ami tele van kiűritem
Ahhj, pedig azt de utálom...
Hibaüzenetet nem látok mert éles rendszerről van szó. Igazából túl sok az ismeretlen változó, azt hiszem ebben nem tudtok segíteni.
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
(#12016) Sk8erPeter válasza Brown ügynök (#12015) üzenetére
pedig ez a "másodjára azonban már nem tudok behúzni semmilyen fájlt ugyanabból a könyvtárból" nem túl beszédes, mert most nem tudjuk, hogy a require_once-nál mi a baj, az elérési út a gáz vagy jogosultságok vagy egyéb... localhostra nem tudod ugyanezt tükrözni?
az éles szerveren egyébként nincs semmi logolás a hibáknak?
[ Szerkesztve ]
Sk8erPeter
a szerveren a WSDL-ben is leírt metódusok és egyebek beállítgatása, meg a tényleges mögöttük lévő metódusok tőled tök függetlenek, tehát azokat nem tudod buzerálni, ebből a szempontból kényszerhelyzetben vagy, és a klienst kell megírnod?
Sk8erPeter
Ez segíthet...
Gondolom ezt nem nekem akartad címezni.
Sk8erPeter
Igen... Bocs... Tapsi-nak szerettem volna Sorry
DOM-al nem tudtam megoldani, hogy 2 percen végezzen az adatok megemésztésével.
Feldolgozás közben figyelni kellett hol tart a script futásidőben, és a 2. perc letelte előtt paraméterezve header('Location...') -al visszairányítani saját magára különben ... különben csöcs, mert a listát/-kat van ahonnan csak óránként 1x, de van ahonnan NAPONTA csak 3x lehet letölteni.
regex -el bőven időn belül végez.
Persze szervere válogatja.
Egyszerű életet élek. Ami üres megtöltöm, ami tele van kiűritem
Persze, ez itt a probléma. Ezért szenvedtem ennyit vele...
Amúgy szerintem marad a DOM, legfeljebb felnyomom a max_execution_time-ot a szerveremen. Úgyis csak naponta egyszer, éjszaka fog lefutni a kérés.
Más:
Van valami jól bevált megoldásotok távoli szerverről kép átmásolására, átnevezésére, és átméretezésére? Eddig csak kliens oldalról feltöltött képet manipuláltam, és nem tudom, hogy van-e érdemi különbség a kettő között?
file_get_contents()-el áthúzod a képet, utána ugyanaz mintha feltöltött képpel dolgoznál.
"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser
(#12024) Brown ügynök válasza Sk8erPeter (#12016) üzenetére
Semmi logolás nincs. Ez a kód nem embernek való. Átneveztem az osztályokat amiket behúzok és most működik.
"hacsak nem jön a jó tündér break utasítás képében..."
(#12025) Sk8erPeter válasza Brown ügynök (#12024) üzenetére
Na, hát az is valami.
Sk8erPeter
Sziasztok!
Van egy feladatom amiben egy statikus honlapot kell létrehozni, de meg kell valósítanom egy Front Controller mintát.
A könyv amiből tanulunk tartalmaz egy statikus megoldást ami nekem jó is lenne, ha érteném hogy mit miért hogyan.
<?php // index.php
switch ( @$_GET['action'] ) {
case 'edit':
include ('actions/edit.php'); break;
case 'post':
include ('actions/post.php'); break;
case 'delete':
include ('actions/delete.php'); break;
case 'default':
include ('actions/view.php'); break;
} ?>
Próbálgatta keresgélni egy hasonló megoldást, de nem sikerült. Tudnátok segíteni?
Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
Van-e valami elegáns tippetek a következőre
adott egy termék, aminek a csomagolási egysége pl 6db
ha én darabárat akarok feltenni, (hogy árgépen szép legyen pl) akkor ugye db mezőbe be tud írni akár 4-et, vagy 8-at is
azt szeretnénk, ha ilyenkor a gép felkerekítené a következő legkisebb csomag mennyiségre
tehát ha db < cs.e akkor dab=cs.e lene
de ha nagyobb mint cs.e akkor meg kell nézni osztva 1-e, ha nem, akkor legyen annyi, hogy osztható legyen maradék nélkül, pl 10-et ír be, akkor 12-t tesz a kosárba
de az ok, megnézem egész szám-e, maradék nélkül osztható-e, nem, ok, de utána hogy kerekítem fel X * cs.e összegre? ciklussal adogatok hozzá 1-et amig maradéktalanulem osztható?
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
dehogyis
Ennél jóval egyszerűbb, egyszerűen elosztod a darabszámot a csomagegységgel, aztán ceil()-lel felkerekíted, majd beszorzod a csomagegységgel ezt a számot, az lesz a korrigált darabszám.
Például én 34-et tettem be a kosárba, a csomagegység nálatok meg 12, tehát akkor a legközelebbi felfelé kerekített, csomagegységnek megfelelő darabszám a 36 lenne. Ez így ki is jön:
$package_unit = 12;
$pieces_in_cart = 34;
$pieces_corrected = $package_unit * ceil($pieces_in_cart/$package_unit);
A $pieces_corrected értéke tehát 36 lesz.
Sk8erPeter
(#12029) Sk8erPeter válasza Peter Kiss (#11865) üzenetére
Nekem még nem volt időm meghallgatni vagy egyáltalán huzamosabban belehallgatni, de hátha elhangzanak érdekes információk ebben a beszélgetésben a korábbi téma kapcsán, amikor arról beszéltünk, hogy mennyire jó vagy mennyire nem PHP-ben is erőltetni a Java-szerű vonalat:
Ha valaki esetleg meghallgatja, nagyon röviden leírhatná a konzekvenciákat, hogy mit hoznak ki a dologból.
[ Szerkesztve ]
Sk8erPeter
Bakker, mar erre is van bepitett fv?
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
Közben sikerült megoldanom
Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
Ez már PHP 4-nél is megvolt...
Amúgy szívesen.
Sk8erPeter
lehet, sose volt rá szükségem
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
Ha valaki esetleg meghallgatja, nagyon röviden leírhatná a konzekvenciákat, hogy mit hoznak ki a dologból.
Elolvastam a leiratot, csak fűrészelik a fingot, simán kihagyható az egész.
"csak fűrészelik a fingot"
Na ezt így még nem hallottam.
OK, akkor kihagyom. Mondjuk a leírás lehet, hogy még lóf@sz, de hátha mondanak valami értelmeset a beszélgetés során... (ezek szerint bele sem hallgattál )
[ Szerkesztve ]
Sk8erPeter
Igazából nem tudom melyik topicban lenne a helye, mivel van benne php írom ide. megszeretném számolni hogy egy naphoz mennyi tartalom tartozik. Első nekifutásnak így próbálkoztam:
$count_news = mysql_query("SELECT date, count(date) FROM news GROUP BY date");
while($row_count = mysql_fetch_array($count_news)){
$content .= $row_count['date'].' - '.$row_count['count(date)'].'<br>';
}
eredménynek viszont nem azt kapom amire számítottam:
2012-11-02 20:30:29 - 1db
2012-11-02 20:31:01 - 1db
2012-11-03 20:30:52 - 1db
2012-11-04 20:30:47 - 1db
Láthatjátok, hogy 2012-11-02-én van kettő tartalom is, de külön írja őket. azt szeretném valahogy egybe vonni.
[ Szerkesztve ]
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
(#12037) SektorFlop válasza SektorFlop (#12036) üzenetére
Már nem tudom módosítani. Közben meg van, rájöttem hogy az idő zavart be.
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
(#12038) Tele von Zsinór válasza SektorFlop (#12037) üzenetére
Ilyenkor tud rajtad segíteni a DATE_FORMAT mysql függvény.
(#12039) Sk8erPeter válasza SektorFlop (#12036) üzenetére
$row_count['count(date)']
Uhh, hát ilyen helyett inkább adj egy aliast a meződnek:
SELECT COUNT(date) AS date_count FROM....
vagy ilyesmi.
Sk8erPeter
(#12040) SektorFlop válasza Sk8erPeter (#12039) üzenetére
Igen, én is átírtam még akkor... célszerűbb úgy én is rájöttem menet közben. Visszatérve a DATE_FORMAT-ra nem volt rá szükség, mert igazából nem is fontos szempont hogy DATE vagy DATETIME típus legyen a dátum. Csak a dátum volt fontos számomra. De azért köszi mindenkinek!
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
PHP-ban ha csomagról külön telepítem, létezik thread safe meg nem thread safe. Azt hogyan kell érteni? Mert ugye a php az nem multi szálas.. Lehet erről olvasgatni valahol átfogó doksit? Gondolom azzal van összefüggésben, ahogyan a webserver a bejövő kapcsolatokat kezeli, de én olyanról még nem hallottam, hogy a scriptek egymásra tudnának futni.
កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។
érdekes felvetés, engem is érdekelne
Ez egy .50-es rombolópuska, elég szép visszarúgással.
google, első találat...
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
Na, itt említették, eddig ezt nem is ismertem:
http://www.iis-aid.com/
IIS+PHP gyors összehozásához ez elég jó lehet.
Bár a Web Platform Installeren keresztül sem túl nehéz.
Sk8erPeter
Sziasztok,
egy webshop fejlesztése során felmerült az igény egy számlázó programra, ami webes alapú, ha jól láttam van a piacon pár, amit lehetne használni, feltétel lenne hogy php-ban legyen megírva. Melyik szerintetek a legjobb alkalmazás (fizetős/ingyenes), amihez könnyen lehet webshop-ot illeszteni, rendelkezik valami interface-szel (xml).
Mihelyt tudjátok, hogy mi a kérdés, érteni fogjátok a választ is.
Arra azért vigyázz, hogy ha megvesznek tőled egy rendszert, amibe integrálsz egy "leszedem a netről az ingyenes PHP-s számlázót" modult , neked kell aláírnod, hogy az márpedig minden jogszabálynak megfelel, ami a vevőd számlázására vonatkozik.
Egy számlázó rendszerhez hozzá tartozik a megfelelő jogszabálykövetés, és a felelősség vállalása, hogy tényleg úgy működik, ahogy kell...
Zavard össze a világot: mosolyogj hétfőn!
Mennyit szánsz a dologra?
Illetve ha már számlázol, akkor általában készletnyilvántartás, raktárkezelés is kell.
[ Szerkesztve ]
Nem feltétel az ingyenesség, sőt, csak mint opciót írtam, utánna néztem a törvényi dolgoknak, és ezért keresek egy olyan rendszert, céget aki felelősséget vállal mindenért. Magának a rendszernek a megírása nem okozna problémát, csak a felelősséget nem akarom/tudom válalni, főleg így hogy elég sűrűn változnak a törvények.
Mihelyt tudjátok, hogy mi a kérdés, érteni fogjátok a választ is.
Igazából az ár nem nagyon számít, ami fontos, hogy nem akarok drágán olyan rendszert venni, ami mögött csak marketing van, használható megoldás nincs.
Az ideális az lenne, ha a számlázás mellett fuvarlevelet is tudna generálni a rendszer, és persze az illesztés, lehetőleg xml, de az se baj ha valami egyedi módon lehet vele kommunkiálni.
A készletnyílvántartás, raktárkezelés megvan már.
[ Szerkesztve ]
Mihelyt tudjátok, hogy mi a kérdés, érteni fogjátok a választ is.