Az eval () egy legitim módszer a php-ben?
Itt a link róla:
Szoktak ilyet használni? Ha egy programozó meglátja, nem kap agykukit tőle? Komolyan kérdezem, mert számomra most jól jönne, de olyan gányolásnak tűnik. Ti mit gondoltok?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Te most nagyon durva gányolásra készülsz. Ne tedd.
Ott a SimpleXML osztály.
Lsd. az alábbi kódrészletet, ami egy GET paraméterben átadott ID alapján megkeresi a deals.xml-ben lévő, az ID-nek megfelelő azonosítójú terméket:
> if (isset($_GET["id"]) and !(empty($_GET["id"])) and is_numeric($_GET["id"])) {
>>>> $currentDealId = $_GET["id"];
> } else {
>>>> die();
};
> $deals = new SimpleXmlIterator("deals.xml", 0, true);
> $deals->rewind();
> while ($currentDealId != (int)$deals->current()->attributes()->id or !$deals->valid()) {
>>>> $deals->next();
> };
> $currentDeal = $deals->current();
"Nem. Az egy külön lekérdező nyelv: "
Bocs, én ezt használom. Csak akkor a nevét nem tudtam. Amúgy miért nem a problémára adsz választ???? :D
Innen szedtem a példát:
De tényleg nem értitek ugye? Én ki tudok keresni paramétereket xml fájlból nem ez a gond. Az a probléma, hogy többet kell egyszerre, mondjuk legyen nyolc paraméter, amiket tetszőlegesen változtatgathat a felhasználó.
Hogy keresel ki nyolc paramétert? Először az elsőre szűrsz rá, a végeredményt berakod egy tömbbe, aztán a tömbből a másodikra stb...
De nem tudod, hogy melyik paramétert fogja kiválasztani a felhasználó, ezért tudod csak így megoldani. Ha tudnád előre, akkor egészen egyszerűen annyit csinálnál, hogy mindig az összesre rászűrnél egyből, amelyik paramétert kiválasztotta a felhasználó. De nem tudod, és nyolc paraméter paraméterből mondjuk kettőt, ha a sorrend nem számít, akkor nyolc alatt a kettőféleképpen tudsz kiválasztani. Ami pedig 28.
Tehát nem tudod az összes létező kombinációban leírni az ifeket, mivel kiválaszthat nyolcból egyet, ami nyolc alatt az egy, nyolcból kettőt, ami nyolc alatt a kettő, nyolcból hármat, ami nyolc alatt a három stb... Ez összesen 254 kombináció. Ennyi ifet nem fogsz felírni.
Mondjuk legyen autó a példa. Az ügyfél rákereshet csak a márkára, rákereshet a márkára és a típusra, rákereshet a márkára és a teljesítményre stb...
Mivel nem tudod, hogy mikor mennyi paraméterre és milyen kombinációban keres rá, ezért minden egyes keresési paraméternél utószűrnöd kell. Ez van úgy megoldva az sql-nél, hogyha létezik a POST, akkor hozzáfűzöl egy részt magához az sql lekérdezéshez, mondjuk egy annyit, hogy "AND valami = 'ertek'".
Ezért gondoltam, hogy az ifeket egyszerűen összefűzöm, illetve pontosabbna az ifekben a változó = érték részeket, mintha sql lekérdezés lenne, így nem kell utószűrnök, és 254 kombinációban felírnom az ifeket.
winsxs
Ez a simple xml iterator tud egyszerre több paraméterre szűrni?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Lényegében egy hatalmas feltétel sort kell készíteni belőle.
Az egészet egyetlen IF -be is belehet szűkíteni AND és záró jelekkel.
DE ahogy a 11. hozászolásba is írtam, valamilyen adatbázis modellbe kéne eltárolni, indexelt kulcsokkal...
Pár száz esetleg ezer értékig nem vészes, de ha több tízezer van, akkor már jelentős időt lehet megspórolni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!