Avatar billede kodak Mester
21. februar 2007 - 06:34 Der er 21 kommentarer og
2 løsninger

Sorter efter dato

I det underståendene script vil jeg gerne kunne sortere billederne efter datoen der er skrevet i det sidste felt af filer ne i mappe 1

<?php

$type = ( !empty( $_GET['type'] ) ? basename( $_GET['type'] ) : '' );
$files = glob( "1/" . $type . "*.jpg" );
foreach( $files as $fil )
{
  $inf = explode( "-", substr( basename( $fil ), 0, -4 ) );
  if ( count( $inf ) == 3 )
  {
      echo "<img src=\"$fil\">";
      echo "<br><br></ br>";
  }
}

?>

Eksempelvis:
I mappe 1 har jeg følgendene filer:
Hej-du-31_03_07.jpg
ja-sikkert-23_04_06.jpg
Davs-ole-12_05_07.jpg

Så skal den på siden vise billederne i følgendene rækefølge:
Hej-du-31_03_07.jpg
Davs-ole-12_05_07.jpg

Følgendene skal ikke vises fordi dato har været der:
ja-sikkert-14_04_06.jpg

er det muligt at få den til det?
Avatar billede jakobdo Ekspert
21. februar 2007 - 07:59 #1
Ja, det er muligt!
Har vi ikke været inde over dette spørgsmål før?
Avatar billede kodak Mester
21. februar 2007 - 23:24 #2
Jo det har vi men der er noget i den du lavet jeg ikke kan,
som jeg kunne i den gamle.
i den gamle kunne jeg skrive ?type=afrydder efter php filen og så ville den kun vise de billeder der startede med afrydder

Tjek http://diskotekglobe.dk/komplet1/ så kan du se i Velkommen - Torsdag & Sodavandsdisko de er alle linket til samme side men med et bestemt søge ord efter.
det ønsker jeg stadig at beholde. du kan selv tjekke hvad billeder ne hedder få siderne.
Avatar billede kodak Mester
21. februar 2007 - 23:27 #3
Kan du være lidt med i http://www.eksperten.dk/spm/740205 det er om det samme.
Avatar billede jakobdo Ekspert
22. februar 2007 - 07:58 #4
Denne kode måske:

<?php
//http://www.eksperten.dk/spm/759943

$images = array();

//Temp arrays
$dates = array();
$names = array();

$type = ( !empty( $_GET['type'] ) ? basename( $_GET['type'] ) : '' );

foreach (glob(getcwd() . "/" . $type . "{*.jpg,*.JPG,*.jpeg,*.JPEG}", GLOB_BRACE) as $image)
{
    $filename = basename($image);
    if(preg_match('/(.+?)-(.+?)-(\\d{2})_(\\d{2})_(\\d{2})\\.jpe?g/', $filename, $match))
    {
        $images[] = array('date' => mktime(0, 0, 0, $match[4], $match[3], '20'.$match[5]),'name' => $match[1], 'title' => $match[2], 'file' => $filename);
    }
}

// Obtain a list of columns
foreach ($images as $key => $image)
{
    $dates[$key] = $image['date'];
    $names[$key] = $image['name'];
}

array_multisort($dates, SORT_DESC, $names, SORT_ASC, $images);

foreach ($images as $image)
{
    if($image['date'] >= time())
    {
        echo '<table>';
        echo '<tr><td>';
        echo '<img src="'.$image['file'].'" title="'.$image['title'].'" />';
        echo '</td><td>';
        echo '<tr><td>';
        echo $image['name'];
        echo '</td><td>';
        echo '<tr><td>';
        echo $image['title'];
        echo '</td><td>';
        echo '</table>';
        echo '<br />';
    }
}

?>
Avatar billede kodak Mester
24. februar 2007 - 15:40 #5
Jeg vil lige have den til en ting mere,
læser du denne kode igennem vil du kunne se at jeg har smidt $inf[0]. ind længere oppe end koden er placeret.
Jeg vil gerne have at hvisjeg linker test.php?type=okay så vil den jo kun komme frem med alle der hedder "okay", men det "okay" skal den også bruge der hvor jeg har placeret $inf[0]. hvordan får jeg den så til det?

<?php
include("template1.txt");

include("template2.txt");
?>


<?php
include("template3.txt");
?>
background="header-$inf[0].jpg"


<?php
include("template4.txt");

?>
<center>
<?php

$images = array();

//Temp arrays
$dates = array();
$names = array();

$type = ( !empty( $_GET['type'] ) ? basename( $_GET['type'] ) : '' );

foreach (glob(getcwd() . "/" . $type . "{*.jpg,*.JPG,*.jpeg,*.JPEG}", GLOB_BRACE) as $image)
{
    $filename = basename($image);
    if(preg_match('/(.+?)-(.+?)-(\\d{2})_(\\d{2})_(\\d{2})\\.jpe?g/', $filename, $match))
    {
        $images[] = array('date' => mktime(0, 0, 0, $match[4], $match[3], '20'.$match[5]),'name' => $match[1], 'title' => $match[2], 'file' => $filename);
    }
}

// Obtain a list of columns
foreach ($images as $key => $image)
{
    $dates[$key] = $image['date'];
    $names[$key] = $image['name'];
}

array_multisort($dates, SORT_DESC, $names, SORT_ASC, $images);

foreach ($images as $image)
{
    if($image['date'] >= time())
    {
        echo '<table>';
        echo '<tr><td>';
        echo '<img src="'.$image['file'].'" title="'.$image['title'].'" />';
        echo '</td><td>';
        echo '<tr><td>';
        echo $image['name'];
        echo '</td><td>';
        echo '<tr><td>';
        echo $image['title'];
        echo '</td><td>';
        echo '</table>';
        echo '<br />';
    }
}

?>
</center>

<?php
include("template5.txt");
?>
Avatar billede jakobdo Ekspert
25. februar 2007 - 13:03 #6
Hvad med at rykke følgede kode højere op:

$type = ( !empty( $_GET['type'] ) ? basename( $_GET['type'] ) : '' );

og så bruge $type og ikke $inf[0]
Avatar billede kodak Mester
25. februar 2007 - 17:36 #7
Hvordan højre op havde du tænkt?
Avatar billede jakobdo Ekspert
25. februar 2007 - 17:47 #8
F.eks. i mellem:

<?php
$type = ( !empty( $_GET['type'] ) ? basename( $_GET['type'] ) : '' );
include("template1.txt");

include("template2.txt");
?>
Avatar billede kodak Mester
03. marts 2007 - 18:04 #9
her er den hele siden
http://diskotekglobe.dk/komplet2/

Men filen "header-$type.jpg" vil ikke vise sig.

Hvad er der så gået galt?
Avatar billede jakobdo Ekspert
03. marts 2007 - 18:42 #10
Du kan ikke bruge header() efter du har haft output til browseren!
Avatar billede kodak Mester
03. marts 2007 - 19:36 #11
Prøv lige at sæt den op så jeg kan.
Avatar billede kodak Mester
03. marts 2007 - 19:41 #12
Og også hvor den henter billederne fra en anden mappe end den hvor php filen er i
Avatar billede jakobdo Ekspert
03. marts 2007 - 20:18 #13
Prøv lige at sæt den op selv...
Avatar billede kodak Mester
03. marts 2007 - 20:45 #14
Jeg har prøvet at sætte den op på flere måder menkan ikke få det puzlet sammen
Avatar billede kodak Mester
04. marts 2007 - 18:59 #15
Fuck det så laver jeg da bare det hele om.
Her har jeg lavet alt det jeg skulle bruge og det virker til jer andre der måske  kunne bruge lidt:

<?php
extract($_GET);
$type = ( !empty( $_GET['type'] ) ? basename( $_GET['type'] ) : '' );
include("../data/template1.txt");

include("../data/template2.txt");
?>%
Avatar billede kodak Mester
04. marts 2007 - 19:00 #16
Ups:

<?php
extract($_GET);
$type = ( !empty( $_GET['type'] ) ? basename( $_GET['type'] ) : '' );
include("../data/template1.txt");

include("../data/template2.txt");
?>


<?php
include("../data/template3.txt");

echo "<img src=\"../images/header-" . $type . ".jpg\">";
?>

<?php
include("../data/template4.txt");

?>
<center>
<?php

$images = array();

$dates = array();
$names = array();


foreach (glob(getcwd() . "/" . $type . "{*.jpg,*.JPG,*.jpeg,*.JPEG}", GLOB_BRACE) as $image)
{
    $filename = basename($image);
    if(preg_match('/(.+?)-(.+?)-(\\d{2})_(\\d{2})_(\\d{2})\\.jpe?g/', $filename, $match))
    {
        $images[] = array('date' => mktime(0, 0, 0, $match[4], $match[3], '20'.$match[5]),'name' => $match[1], 'title' => $match[2], 'file' => $filename);
    }
}

foreach ($images as $key => $image)
{
    $dates[$key] = $image['date'];
    $names[$key] = $image['name'];
}

array_multisort($dates, SORT_DESC, $names, SORT_ASC, $images);

foreach ($images as $image)
{
    if($image['date'] >= time())
    {
        echo '<table>';
        echo '<tr><td>';
        echo '<img src="'.$image['file'].'" title="'.$image['title'].'" />';
        echo '</td><td>';
        echo '<tr><td>';
        echo $image['name'];
        echo '</td><td>';
        echo '<tr><td>';
        echo $image['title'];
        echo '</td><td>';
        echo '</table>';
        echo '<br />';
    }
}

?>
</center>

<?php
include("../data/template5.txt");
?>
Avatar billede jakobdo Ekspert
04. marts 2007 - 19:07 #17
Så kunne du jo godt selv! :o)

Du får også lige et svar så.
Avatar billede kodak Mester
04. marts 2007 - 21:49 #18
Jeg har kun givet dig 20 da der ikke var opnået det jeg søgte.
Grunden til at jeg søger hjælp er ofte fordijeg ikke har tid til at klare det selv, da jeg har meget andet at se til.
Det jeg søgtes opnået var følgendene
System der kan sortere billeder efter dato - OK.
System der ikke viser billede når dato er forbi - OK.
System der kan hente billeder fra andre mapper end mappen selv - IKKE opnået.
System der er komplet og klar til brug - IKKE opnået.
Avatar billede jakobdo Ekspert
04. marts 2007 - 22:00 #19
Eksperten.dk er jo ikke ment som gratis arbejde.
Hvis ikke du har tid til at lave tingen selv, så skal du oprette dine ønsker/opgaver i opgave kategorien.

Her under PHP er det jo tiltænkt at man spørger til et problem, som man så får en ide eller løsning på, og selv kan arbejde videre med det.
Avatar billede kodak Mester
05. marts 2007 - 01:01 #20
Ja men det hjælper ikke noget at man kun får hjelp til det halve:

System der kan sortere billeder efter dato - OK.
System der ikke viser billede når dato er forbi - IKKE opnået (gør det omvendt tjek selv http://www.diskotekglobe.dk/kom/4/).
System der kan hente billeder fra andre mapper end mappen selv - IKKE opnået.
System der er komplet og klar til brug - IKKE opnået.
Avatar billede kodak Mester
05. marts 2007 - 01:45 #21
Tjek list:
System der kan sortere billeder efter dato - OK.
System der ikke viser billede når dato er forbi - ½.
System der kan hente billeder fra andre mapper end mappen selv - IKKE opnået.
System der er klar til brug - OK.
System der er komplet - IKKE opnået.

Denne er nu sat til at sortere korekt efter dato:

<?php
extract($_GET);
$type = ( !empty( $_GET['type'] ) ? basename( $_GET['type'] ) : '' );
include("../data/template1.txt");

include("../data/template2.txt");
?>


<?php
include("../data/template3.txt");

echo "<img src=\"../images/header-" . $type . ".jpg\">";
?>

<?php
include("../data/template4.txt");

?>
<center>
<?php

$images = array();

//Temp arrays
$dates = array();
$names = array();


foreach (glob(getcwd() . "/" . $type . "{*.jpg,*.JPG,*.jpeg,*.JPEG}", GLOB_BRACE) as $image)
{
    $filename = basename($image);
    if(preg_match('/(.+?)-(.+?)-(\\d{2})_(\\d{2})_(\\d{2})\\.jpe?g/', $filename, $match))
    {
        $images[] = array('date' => mktime(0, 0, 0, $match[4], $match[3], '20'.$match[5]),'name' => $match[1], 'title' => $match[2], 'file' => $filename);
    }
}

// Obtain a list of columns
foreach ($images as $key => $image)
{
    $dates[$key] = $image['date'];
    $names[$key] = $image['name'];
}

array_multisort($dates, SORT_INC, $names, SORT_ASC, $images);

foreach ($images as $image)
{
    if($image['date'] >= time())
    {
        echo '<table>';
        echo '<tr><td>';
        echo '<img src="'.$image['file'].'" title="'.$image['title'].'" />';
        echo '</td><td>';
        echo '</table>';
        echo '<br />';
    }
}

?>
</center>

<?php
include("../data/template5.txt");
?>
Avatar billede kodak Mester
05. marts 2007 - 01:49 #22
Til andre der er intreseret:

array_multisort($dates, SORT_INC, $names, SORT_ASC, $images);
Får den til at sortere Tætteste dato ØVERST

array_multisort($dates, SORT_DESC, $names, SORT_ASC, $images);
Får den til at sortere Tætteste dato NEDERST
Avatar billede jakobdo Ekspert
05. marts 2007 - 08:07 #23
Hvis du læser dit spørgsmål igen, så har jeg besvaret de første spørgsmål.
At du så begynder at stille flere, er jo dit problem.
Der skal du jo rent faktisk oprette en ny tråd.
Men fuck nu det, som du selv siger. Life Goes On...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester