Hogyan? Egy olyan összehasonlító műveletre lenne szükségem, mely a fájl nevének kezdetére szűr (pl. :5_id_randomszam. Png)!?
$fajl = "5_1234_1234552.png";
$id = 1234;
if(strpos($fajl,$id) !== NULL){
//file name contain id
}
Milyen nyelven kellene?
Amúgy első válasza nem rossz, de az csak tartalmazást vizsgál, ami random számok és szám alapú ID-k esetében nem túl biztos megoldás, mivel a véletlen szám is tartalmazhatja az ID-t, így arra is bekerül az igaz ágba a program.
A nyelv PHP. Ez valóban lemaradt.
A fájl neve így néz ki:
pl.: "5_id_18726.php" -> ez a kép egy alkatrészhez tartozik, melynek id-a: 5. Az elején az "5_id_" érték a fontos. Egy alkatrészhez több kép tartozik a random szám a név egyediségét biztosítja csupán. Ha egy alkatrészt listázok, melynek id-a 5, a hozzátartozó képekre szűrök, melyek "5_id_"-kezdetűek. A könyvtárban található képek nevei a $file-ban találhatóak. Ebből kéne kiszűrni adott id-val rendelkező képeket. Nem tudom, erre milyen operátort lehetne használni. Logikailag olyan, mint SQL-ben. Ha jól emlékszem valahogy így néz ki:
SELECT * FROM autok WHERE autonev='bmw%'
Itt például a %-jel, amennyiben jól emlékszem, az autómatikus kiegészítés, tehát minden bmw-vel kezdődő rekordot listázni fog, mint pl.: bmwe34, bmwe46, bmwe90, stb. Ugyan ez a lehetőség lenne szükséges a php-hez. Nem tudom milyen módon keressek erre.
Azt nem értem már csak, hogy ezeket miért nem adatbázisban tárolod?
(Itt egy kis tervezési hibát vélek felfedezni.)
PHP-ben én reguláris kifejezést írnék a fájlnevek szűrésére.
Tehát pl végigiterálsz a mappa tartalmán, majd minden fájlnévre ráhívod ezt: [link]
Köszönöm a válaszokat! Itt egy lehetséges megoldás egyszerűen:
<?php
$id='6_id';
chdir ('images/thumbs/');
$fajltipusok = array('png');
$fajlok = join(',*.', $fajltipusok);
$fajlok = $id.'*.' . $fajlok;
$megjelenit = 1;
foreach (glob("{" . $fajlok . "}", GLOB_BRACE) as $fajlnev)
{
if($fajlnev == "")
{}
else
{
echo "<img src='images/thumbs/" . $fajlnev . "' width='150px' height='auto' /><br />";
$megjelenit++;
}
}
print $fajlok;
?>
Az alkatrészeket a db-ben kéne tárolni (remélem ott vannak), majd a képeket a szerveren egy mappában, esetleg kategóriákba tagolva, de ez fölösleges.
Minden alkatrésznek van egy ID-je, nos ezekhez egy külön táblában hozzárendeled a képek elérését és kész is vagy.
Igazából ez lenne a leghatékonyabb és "szokásos" megoldás.
Az alkatrészek természetesen db-ben vannak a képek pedig könyvtárban a szerveren, úgy, ahogy mondod! A képek elérési útját nem tároltam adatbázisban, egyenlőre nem is tervezem, mert e szempontból az adatbázist meg szeretném kerülni, többek közt a fájlhasználattal kapcsolatos tapasztalatgyűjtés miatt. A megoldásod természetesen kifogástalan! Köszönöm szépen!
Mi a véleményed a fenti megoldásról?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!