PHP výběr obrázku na základě data vytvoření

czipis

  • ***
  • 162
    • Zobrazit profil
    • E-mail
Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #15 kdy: 31. 03. 2021, 17:05:23 »
Tím získáte čas zapsání souboru na disk, ale to vůbec nevíte, jestli je čas vzniku fotografie. To se ukrývá v exifu.

A vy vite ze ty soubory co tazatel chce zpracovavat maji exif?


Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #16 kdy: 31. 03. 2021, 17:25:56 »
Tím získáte čas zapsání souboru na disk, ale to vůbec nevíte, jestli je čas vzniku fotografie. To se ukrývá v exifu.

A vy vite ze ty soubory co tazatel chce zpracovavat maji exif?

Ve skutečnosti nevíme vůbec nic. Ani to, kolik souborů je / bude v adresáři po pár dnech. Víme, že každých 15 sekund se tam ukládá obrázek, ale nevíme ani to, jestli a jak je zajištěno, aby to nezačalo (nepokoušelo se) číst ze souboru, který je teprve zapisován atd. atd. atd.

RDa

  • *****
  • 1 279
    • Zobrazit profil
    • E-mail
Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #17 kdy: 31. 03. 2021, 19:37:39 »
Proc na to jit slozite?
Kód: [Vybrat]
ls -l --sort=timevam da serazeny seznam podle casu, muzete si ho pak rozparsovat (jen doporucuji nastavit nevinne locale natvrdo, napr. LC_ALL=C), a delat to bud s chdir(), nebo v pripade volani skrze system() ci `` a adresarem, to jmeno nezapomenout prohnat pres escapeshellarg().

Kit

  • *****
  • 585
    • Zobrazit profil
    • E-mail
Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #18 kdy: 31. 03. 2021, 20:29:42 »
Kód: [Vybrat]
$files = scandir('directory', SCANDIR_SORT_DESCENDING);
$newest_file = $files[0];

Není zač.

Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #19 kdy: 31. 03. 2021, 20:35:00 »
Kód: [Vybrat]
$files = scandir('directory', SCANDIR_SORT_DESCENDING);
$newest_file = $files[0];

Není zač.

SCANDIR_SORT_DESCENDING to setřídí podle abecedy.


Kit

  • *****
  • 585
    • Zobrazit profil
    • E-mail
Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #20 kdy: 31. 03. 2021, 21:30:13 »
Kód: [Vybrat]
$files = scandir('directory', SCANDIR_SORT_DESCENDING);
$newest_file = $files[0];

Není zač.

SCANDIR_SORT_DESCENDING to setřídí podle abecedy.

Hmm, když to zkombinuje s https://www.php.net/filemtime, tak to bude dělat to, co chce.

Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #21 kdy: 31. 03. 2021, 21:36:44 »
Kód: [Vybrat]
$files = scandir('directory', SCANDIR_SORT_DESCENDING);
$newest_file = $files[0];

Není zač.

SCANDIR_SORT_DESCENDING to setřídí podle abecedy.

Hmm, když to zkombinuje s https://www.php.net/filemtime, tak to bude dělat to, co chce.

A pokud  ty soubory neodmazává (což nemáme v zadání vyjasněno), tak mu klekne PHP na timeoutech než se načte adresář, a než to ty statisíce souborů setřídí. Nehledě na počet IO operací. Smyčka v PHP a v ní filemtime je něco, co by mi nahánělo hrůzu, brr.

Pokud není potřeba brát exif ale stačí datum ze souboru (já to nedoporučuju, vím, jak je to ošidné a jak je nesnadné opravdu zajistit, že zůstane neměnné), pak dává smysl použít obyčejné ls.

Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #22 kdy: 31. 03. 2021, 22:25:02 »
Nehledě na počet IO operací. Smyčka v PHP a v ní filemtime je něco, co by mi nahánělo hrůzu, brr.

O kolik vice IO operaci je potreba pri zavolani filemtime vs ls?

Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #23 kdy: 01. 04. 2021, 00:21:35 »
To jsou zase "napady"

Predpokladam ze zadani je zobrazeni obrazku na webu dle specifikovaneho data:

Pokud to nejde jinak a musime nutne pracovat se slozkou kde se kazdych 14s vyskytne novy soubor, tak na to samozrejme musime pouzit sluzbu ktera bude danou slozku sledovat na zmeny (inotify) a pri kazdem IN_CREATE eventu provest s danym souborem pozadovanou operaci, v tomto pripade asi INSERT do databaze s nazvem souboru, casem vytvoreni a pripadne dalsi metadata ktere chceme na webu zobrazit nebo je pouzit k hledani...

pak take jednou za cas provest uklid starych dat z DB(pripadne dane slozky) pokud jiz nebudou treba (znovu z dane service, netreba do toho michat cron)

Zde je priklad pouziti pyinotify (python) pro sledovani noveho souboru ve slozce https://stackoverflow.com/questions/33788186/pyinotify-for-watching-new-file-creation-in-a-folder

No a pro onu webovou aplikaci v PHP to pak znamena jen cist data z databaze a mit pristup ke cteni k souborum v sledovane slozce...

PS: Nemam problem tohle^ za uplatu pro tebe pripravit jako systemd service + python3


PanVP

  • ****
  • 398
    • Zobrazit profil
    • E-mail
Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #25 kdy: 01. 04. 2021, 08:04:03 »

Aneb jak z naprosto triviální úlohy udělat "zakázečku za deset táců" ;D

+1

Vybagrovat z toho peníze za každou cenu.
A další peníze vybagrovat z toho, že to bude někdo udržovat.
Žádná Win-Win situace, ale pocta bohu Ojebovi.
 ::)
Vymýšlení Českého řešení, improvizované, zato drahé a s nároky na náročnou údržbu.

Když už by to měl někdo dělat správně, tak se postarat, aby výstup z kamery byl správně očíslovaný.
Všechno ostatní jsou jen rovnáky na ohýbák.
Rovnák na ohýbák má smysl jen ve chvíli, kdy to je prostě tak easy, že nemá smysl napravovat problém.

Příklad:
Teče dírou do střechy.
Já navrhuji, když se vám to nechce spravovat, dejte tam kýbl.
Vy navrhujete - dáme tam profesionální odsávačku s detektorem, jak se objeví kapání, odsávačka začne pumpovat a nakonec i pustí lesní vůni.  ::)
Ale problém je, že je díra ve střeše ježkovi woči!
Když vadí díra ve střeše a kýbl nestačí, tak snad opravím tu díru ne?

BTW, dost možná je výstup z kamery i správně očíslovaný, jen je zakódovaný do číselného formátu, který nemusí být na první pohled zjevný. Programátoři je velmi zřídka název generují nesmyslně. Dost možná ani žádná díra ve střeše není. 
« Poslední změna: 01. 04. 2021, 08:09:33 od PanVP »

Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #26 kdy: 01. 04. 2021, 09:07:26 »

Aneb jak z naprosto triviální úlohy udělat "zakázečku za deset táců" ;D

+1

Vybagrovat z toho peníze za každou cenu.
A další peníze vybagrovat z toho, že to bude někdo udržovat.
Žádná Win-Win situace, ale pocta bohu Ojebovi.
 ::)
Vymýšlení Českého řešení, improvizované, zato drahé a s nároky na náročnou údržbu.

Když už by to měl někdo dělat správně, tak se postarat, aby výstup z kamery byl správně očíslovaný.
Všechno ostatní jsou jen rovnáky na ohýbák.
Rovnák na ohýbák má smysl jen ve chvíli, kdy to je prostě tak easy, že nemá smysl napravovat problém.

Příklad:
Teče dírou do střechy.
Já navrhuji, když se vám to nechce spravovat, dejte tam kýbl.
Vy navrhujete - dáme tam profesionální odsávačku s detektorem, jak se objeví kapání, odsávačka začne pumpovat a nakonec i pustí lesní vůni.  ::)
Ale problém je, že je díra ve střeše ježkovi woči!
Když vadí díra ve střeše a kýbl nestačí, tak snad opravím tu díru ne?

BTW, dost možná je výstup z kamery i správně očíslovaný, jen je zakódovaný do číselného formátu, který nemusí být na první pohled zjevný. Programátoři je velmi zřídka název generují nesmyslně. Dost možná ani žádná díra ve střeše není.


tohle je prkotina na 2h...

i kdyby se mu povedlo zmenit format ukladani souboru nebo rozklicovat poradi/cas ve stavajcim formatu, nijak mu to nepomuze a stejne to bude muset zpracovat pres inotify eventy... proc? Protoze delat jakekoliv operace nad 6k>
soubory z webove PHP aplikace je nebetycna prasarna.
Hlavne ale predpokladam ze chce nad danymi soubory interaktivne hledat z one PHP aplikace dle data a to bud zadanim casu s presnosti na ?minuty? nebo zadanim rozsahu dvou casu na sekundy (bohuzel dotaz nespecifikuje presne ale jinak si nedokazi predstavit na co by ta PHP aplikace byla uzitecna) no a tyto dve operace lze udelat velmi jednoduse a hlavne rychle nad DB.

Me reseni jsem navrhl s ohledem na to ze dotaz nespecifikuje hromadu dulezitych parametru jako jsou pocet pristupu k dane PHP aplikaci, opravneni k pristupu, atp...

Me reseni je pouzitelne at uz se jedna o PHP aplikaci v intranetu kterou spusti jednou za den (i kdyz by na to stacily tupejsi reseni) a zaroven je pouzitelne i kdyby se jednalo o verejne pristupnou PHP aplikaci s tisici pristupy za hodinu. Protoze nebylo specifikovano jinak, navrhl jsem reseni ktere resi vsechny mozne specificke situace.

PS: Kterej dement programoval tohle forum?! Pri odeslani prispevku me to odhlasilo a zahodilo prispevek (no vlastne nezahodilo, narvalo ho to do input type="hidden" v prihlasovacim formulari bez jakehokliv escapovani/encodovani a rozesralo to HTML formulare, well done! takovy hovna jsem nedelal ani kdyz mi bylo 13 let lol)

PanVP

  • ****
  • 398
    • Zobrazit profil
    • E-mail
Re:PHP výběr obrázku na základě data vytvoření
« Odpověď #27 kdy: 01. 04. 2021, 10:14:37 »
PS: Kterej dement programoval tohle forum?!

No vidíš, místo opravy fóra ti poradím rovnák na ohýbák.
Před odesláním formuláře si text uložíš do schránky, zmáčkneš prohlédnout, pokud to projde, pokusíš se příspěvek vložit.
Také můžeš použít řešení ve tvém stylu, prostě si do prohlížeče přidáš rozšíření, které si bude pamatovat obsahy formulářů a budeš si hlídat jeho funkčnost, aktualizovat a opečovávat.

....a nebo by mohl někdo tohle fórum opravit, ale to by nebylo IT  ;D