Hirdetés

2024. április 20., szombat

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)

Hozzászólások

(#12001) sztanozs válasza Tapsi (#12000) üzenetére


sztanozs
veterán

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

(#12002) Speeedfire


Speeedfire
nagyúr

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

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


Tele von Zsinór
őstag

Erre valóak a debug szintű logüzenetek.

(#12004) Speeedfire válasza Tele von Zsinór (#12003) üzenetére


Speeedfire
nagyúr

Közben megoldottam beépített log-olással.
A probléma meg annyira egyszerű volt, hogy csak nem bökte ki a szememet. :D

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#12005) Sk8erPeter válasza Tapsi (#12000) üzenetére


Sk8erPeter
nagyúr

DOMDocument

(#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

(#12006) Tapsi válasza Sk8erPeter (#12005) üzenetére


Tapsi
addikt

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 ]

(#12007) Brown ügynök


Brown ügynök
senior tag

Ó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. :R

"hacsak nem jön a jó tündér break utasítás képében..."

(#12008) Sk8erPeter válasza Tapsi (#12006) üzenetére


Sk8erPeter
nagyúr

Nem ártana, ha az UFT-8 helyett UTF-8 lenne használva. :DDD
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 :DDD
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

(#12009) Soak válasza Brown ügynök (#12007) üzenetére


Soak
veterán

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?

(#12010) Tapsi válasza Sk8erPeter (#12008) üzenetére


Tapsi
addikt

Átírtam, de nyilván nem ez volt a gond. Kösz, hogy szóltál. :D

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 ]

(#12011) Soak válasza Soak (#12009) üzenetére


Soak
veterán

Nyilván nem kétszer includeoltam a test3-mat csak kopipészteltem.

(#12012) oleslie válasza Tapsi (#11997) üzenetére


oleslie
aktív tag

$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

(#12013) oleslie


oleslie
aktív tag

sok adat -> timeout. DOM felejtős. regex a barátod ;)

Egyszerű életet élek. Ami üres megtöltöm, ami tele van kiűritem

(#12014) Tapsi válasza oleslie (#12013) üzenetére


Tapsi
addikt

Ahhj, pedig azt de utálom... :D

(#12015) Brown ügynök válasza Soak (#12009) üzenetére


Brown ügynök
senior tag

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


Sk8erPeter
nagyúr

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

[ Szerkesztve ]

Sk8erPeter

(#12017) Sk8erPeter válasza Tapsi (#12010) üzenetére


Sk8erPeter
nagyúr

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

(#12018) Swifty válasza Sk8erPeter (#12016) üzenetére


Swifty
csendes tag

Ez segíthet...

(#12019) Sk8erPeter válasza Swifty (#12018) üzenetére


Sk8erPeter
nagyúr

Gondolom ezt nem nekem akartad címezni. :)

Sk8erPeter

(#12020) Swifty válasza Sk8erPeter (#12019) üzenetére


Swifty
csendes tag

Igen... :D Bocs... :D Tapsi-nak szerettem volna :D Sorry

(#12021) oleslie válasza Tapsi (#12014) üzenetére


oleslie
aktív tag

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

(#12022) Tapsi válasza Sk8erPeter (#12017) üzenetére


Tapsi
addikt

Persze, ez itt a probléma. Ezért szenvedtem ennyit vele... :DDD

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?

(#12023) DeltaPower válasza Tapsi (#12022) üzenetére


DeltaPower
őstag

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


Brown ügynök
senior tag

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


Sk8erPeter
nagyúr

Na, hát az is valami. :D

Sk8erPeter

(#12026) Des1gnR


Des1gnR
őstag

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

Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2

(#12027) biker


biker
nagyúr

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 |

(#12028) Sk8erPeter válasza biker (#12027) üzenetére


Sk8erPeter
nagyúr

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


Sk8erPeter
nagyúr

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:

Should PHP be Copying the Java features and practices?
Lately in PHP podcast episode 29 - PHP Classes blog

Ha valaki esetleg meghallgatja, nagyon röviden leírhatná a konzekvenciákat, hogy mit hoznak ki a dologból.

[ Szerkesztve ]

Sk8erPeter

(#12030) biker válasza Sk8erPeter (#12028) üzenetére


biker
nagyúr

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 |

(#12031) Des1gnR válasza Des1gnR (#12026) üzenetére


Des1gnR
őstag

Közben sikerült megoldanom :R

Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2

(#12032) Sk8erPeter válasza biker (#12030) üzenetére


Sk8erPeter
nagyúr

Ez már PHP 4-nél is megvolt... :F
Amúgy szívesen. ;]

Sk8erPeter

(#12033) biker válasza Sk8erPeter (#12032) üzenetére


biker
nagyúr

lehet, sose volt rá szükségem :) :C

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 |

(#12034) cucka válasza Sk8erPeter (#12029) üzenetére


cucka
addikt

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.

(#12035) Sk8erPeter válasza cucka (#12034) üzenetére


Sk8erPeter
nagyúr

"csak fűrészelik a fingot"
:DD Na ezt így még nem hallottam. :DDD
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 :D)

[ Szerkesztve ]

Sk8erPeter

(#12036) SektorFlop


SektorFlop
aktív tag

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


SektorFlop
aktív tag

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


Tele von Zsinór
őstag

Ilyenkor tud rajtad segíteni a DATE_FORMAT mysql függvény.

(#12039) Sk8erPeter válasza SektorFlop (#12036) üzenetére


Sk8erPeter
nagyúr

$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


SektorFlop
aktív tag

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

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#12041) coco2


coco2
őstag

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.

កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។

(#12042) pvt.peter válasza coco2 (#12041) üzenetére


pvt.peter
őstag

érdekes felvetés, engem is érdekelne

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#12043) sztanozs válasza pvt.peter (#12042) üzenetére


sztanozs
veterán

google, első találat... :U

[ 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...

(#12044) Sk8erPeter válasza sztanozs (#12043) üzenetére


Sk8erPeter
nagyúr

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

(#12045) v_angelus


v_angelus
tag

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.

(#12046) STony válasza v_angelus (#12045) üzenetére


STony
csendes tag

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!

(#12047) Tapsi válasza v_angelus (#12045) üzenetére


Tapsi
addikt

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 ]

(#12048) v_angelus válasza STony (#12046) üzenetére


v_angelus
tag

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.

(#12049) v_angelus válasza Tapsi (#12047) üzenetére


v_angelus
tag

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.

(#12050) biker válasza v_angelus (#12048) üzenetére


biker
nagyúr

cashman fx, webshop pluginnel

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 |

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.