Kezdőoldal » Számítástechnika » Programozás » Hogyan? Egy olyan összehasonlí...

Freeman0907 kérdése:

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)!?

Figyelt kérdés
Sajnos az alábbi kódrészletnél tudnom kéne a kép pontos nevét, de az a termék id és a time () függvény értékével, összefűzve nevezem el, ezért csak az id fontos a szűréshez. A lényeg: ha a fájl neve tartalmazza a '5_id_' karaktereket. Végrehajt az if ág Segítségeteket köszönöm! If ($file == '5_id_'. '. png') { . }

2013. márc. 15. 21:51
 1/8 anonim ***** válasza:

$fajl = "5_1234_1234552.png";

$id = 1234;

if(strpos($fajl,$id) !== NULL){

//file name contain id

}

2013. márc. 16. 00:20
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:

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.

2013. márc. 16. 01:03
Hasznos számodra ez a válasz?
 3/8 A kérdező kommentje:

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.

2013. márc. 16. 09:43
 4/8 anonim ***** válasza:

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]

2013. márc. 16. 11:45
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

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;

?>

2013. márc. 16. 12:52
 6/8 A kérdező kommentje:
"...hogy ezeket miért nem adatbázisban tárolod?" - Úgy gondolom, talán egyszerűbb lesz így. 1500 alkatrészről van szó, mindegyikhez legalább 2 kép tartozik. Ez elég sok és előfordulhat, hogy nem ez lesz a végső megoldás a képek kereséséhez, de ebből kiindulhatok. Sajnos itt is végig kell szaladgálni a fájlokon, míg a keresés feltétele nem teljesül, meglátjuk mennyire lesz ez hatásos!? Jó tapasztalatszerzési lehetőség, mert ennyi adattal még nem volt dolgom! Lehet, hogy azt fogom csinálni, hogy 500 képenként új könyvtárat hozok létre... még nem tudom.
2013. márc. 16. 13:01
 7/8 anonim ***** válasza:

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.

2013. márc. 16. 13:21
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:

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?

2013. márc. 16. 13:45

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!