Gå til innhold

Hente ut random thumbnail fra et galleri


Anbefalte innlegg

Trenger noen pekere på hvordan jeg kan hente ut et random thumbnail fra et galleri, galleriene vil også være helt tilfeldige. Slik jeg tenker det kunne fungere, var hvis scriptet brukte en regex og gikk igjennom koden og plukket ut de bildene som har samme høyde / bredde, og hvis antallet av dem er større enn 9 f.eks. så velges et random bilde ut.

Men dette avhenger jo igjen at høyde / bredde er angitt på thumbnails i alle gallerier.

 

Uansett, kom med idèer, dette var bare min tanke bak det, og det finnes helt sikkert andre løsninger.

 

På forhånd takk.

Lenke til kommentar
Videoannonse
Annonse

Hei, takk for tipset.

Problemet mitt er vel hvordan jeg skal få tak i de korrekte filnavnene, beklager hvis det kom dårlig frem i første posten.

Tingen er jo at det i veldig mange tilfeller vil være flere bildefiler tilknyttet dette galleriet, enn selve thumbnailene.

Lenke til kommentar

Jeg har ikke galleri-dataene, for galleriet kan være ett hvilket som helst, familiealbumet til broren min, porteføljen til tanta mi, whatever. Det jeg er ute etter er, kun utifra URL'en til et random galleri som har flere thumbnails i samme størrelse, plukke ut ett av dem automatisk.

Jeg kunne sikkert hentet ut URL'ene fra alle <img> taggene, men jeg ville da fortsatt fått med andre bilder som designelementer, frem / tilbake-knapper, reklame, alle bilder som ikke er lastet fra stylesheet etc.

 

Så for å forklare ytterligere, det jeg er ute etter er følgende:

Ved å kun angi URL til ett helt tilfeldig galleri, som inneholder fler enn f.eks. 8 thumbnails av samme størrelse, hente ut URL til ett av disse. Det kan ofte være tilfeller hvor width / height ikke er angitt på disse bildene, så jeg kan ikke bruke det som ett argument.

 

Jeg har ikke noe problem med hvordan lagre dette i en database, eller gjøre en random spørring på ID.

Jeg vil heller ikke ha noe ferdig kode, bare noen tips i riktig retning.

 

Er det f.eks. mulig å hente ut bredde / høyde "fysisk" fra bildene, ikke utifra verdier i <img> taggen så lagre URL'en til de som har samme størrelse (bredde / høyde) og er fler enn f.eks. 8.

 

Nå ble det litt mye tekst her, men igjen, på forhånd takk.

Lenke til kommentar

Dårlig med respons her. Har fått løst det midlertidig, på følgende måte.

 

require 'simple_html_dom.php';

$url = "http://blabla.com/galleri.html";

$data = file_get_html($url);

$splUrl = parse_url($url);

$j=0;
foreach($data->find('img') as $element) {  // For hvert img element

if(strpos($element->src, 'http') !== false) { // Hvis $element er en komplett url
$imageUrl = $element->src;
} else { // $element er en sti, lag komplett url
$imageUrl = $splUrl['scheme'] . '://' . $splUrl['host'] . $splUrl['path'] . $element->src; 
}
$size = getimagesize($imageUrl);
$width[$j] = $size[3]; // lagrer width * height i en array
$urlArray[$j] = $imageUrl;
$j++;
}

$result = array_count_values($width); // teller hvilken width * height som forekommer flest ganger
arsort($result, SORT_NUMERIC);

$result2 = array_keys($result);

$size2 = $result2[0];

$finalThumb = array_search($size2, $width); // søker gjennom array etter første url som samsvarer med riktig width * height
$finalUrl = $urlArray[$finalThumb]; // endelig url til thumbnail.

 

Sikkert meget rotete kode, og mye ubrukelige variabelnavn, men det funker ihvertfall for en nybegynner som meg. Tingen er at det tar veldig lang tid å laste ned alle bildene på siden for å finne bredde / høyde, kommer til å ta evig lang tid når den skal igjennom en del gallerier. Og nå henter den alltid ut det første thumbnailet, skulle gjerne hatt litt rulering på det. Så hvis noen har noen tips til forbedringer, så er det bare å komme med dem :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...