• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Ordner auslesen und nur bestimmte Dateien auslesen und sortieren

T

TheBeat

Guest
Hallo,

das ist mein erster Foreneintrag somit bitte ich um Verzeihung falls ich irgendwas nicht beachte beim erstellen eines Themas ;)

Vielleicht kurz zu meinem Problem.
Ich habe einen Code geschrieben der dazu dient einen Ordner und alle darin befindlichen Dateien (Bilder) auszulesen. Das ganze funktioniert auch wirklich wunderbar so das ich mit dem Code an sich kein Problem habe.

Auf meiner Website können User Bilder hochladen. Jedes hochgeladene Bild erhält den selben Namen beim Upload bis auf den Unterschied das ans Ende des Namens die individuelle userid eines Users ,die bei der Registrierung vergeben wird, angehangen wird.

So nun möchte ich meine Code den ich oben bereits genannt habe dazu nutzen, alle Bilder EINES Users auszulesen und nach Datum zu sortieren. Genau hier scheitere ich. Ich habe schon paar Dinge ausprobiert aber ne wirkliche Idee wie ich das Problem lösen kann habe ich nicht :/

Ich wäre wirklich sehr dankbar wenn ich eventuell paar Tipps zur Problemlösung erhalten würde oder sogar die Lösung meines Problems :)

Hier ist der genannte Code:
Code:
<?php
date_default_timezone_set('Europe/Berlin');
$dirs = array();
$files = array();
    
   $ordner = "upload";
   $handle = opendir ($ordner);
 
   while ($file = readdir ($handle)) {
      if($file != "." && $file != ".." & $file != ".DS_Store") {
         $compl = $ordner."/".$file;
         if(is_dir($compl)) {
            $dirs [filemtime ($compl)] = "/".$file;
         } else {
            // kompletter Pfad
            $files [filemtime ($compl)] =  "upload/".$file; //Originalcode: "<a href=\"".$compl."\">".$file."</a>";
         }
      }
   }
 
   krsort ($dirs);
   foreach ($dirs as $key => $dir)
      echo $dir . '  ' . date ("F d Y H:i:s.", $key) . "<br/>"; // kann auch noch für unten genutzt werden nur dann mit $file
    
   krsort ($files);
   foreach ($files as $key => $file)
      echo "<img src='$file' style='width: 50%; min-width: 100px; max-width: 300px; border-radius: 5px;   border-style: double; border-color: gray; border-width: 1px; margin-left: 20px; margin-top: 25px; height: 300px; margin-bottom: 25px; box-shadow: 0px 8px 20px 0px gray; cursor: pointer; margin-right: 20px' >"; //  . '  ' . date ("F d Y H:i:s.", $key) . "<br/>" habe diesen Code rausgenommen
                                                         // da ich ihn eigentlich nicht benötige
   closedir($handle);
?>


Das komplette Script kriege ich nicht mehr in diesen Beitrag wegen der Zeichenbegrenzung

Hier noch das komplette Script Part 1:
Code:
<?php
session_start();
if(!isset($_SESSION['userid'])) {
    die('Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}
$userid = $_SESSION['userid'];

$upload_folder = 'upload/'; //Das Upload-Verzeichnis
$filename = "profilbild_user".$userid;
$extension = strtolower(pathinfo($_FILES['datei']['name'], PATHINFO_EXTENSION));
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

<head>
    <title>Fashionation</title>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

    <link rel="stylesheet" href="furz1php.css" type="text/css" />
    <link rel="stylesheet" href="uebung01a.css" type="text/css" />
    <link rel="stylesheet" href="font-awesome-4.5.0/css/font-awesome.min.css">
    <link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    
     <script type="text/javascript">
  function toggle(id){
    var e = document.getElementById(id);

    if (e.style.display == "none"){
       e.style.display = "";
    } else {
       e.style.display = "none";
    }
  }
    </script>

<script type="text/javascript">
function myFunctionA() {
    document.getElementById("myDropdown").classList.toggle("show");
}

window.onclick = function(event) {
  if (!event.target.matches('.dropbtn')) {

    var dropdowns = document.getElementsByClassName("dropdown-content");
    var i;
    for (i = 0; i < dropdowns.length; i++) {
      var openDropdown = dropdowns[i];
      if (openDropdown.classList.contains('show')) {
        openDropdown.classList.remove('show');
      }
    }
  }
}
</script>
    
<script  type="text/javascript">
function myFunctionB() {
    document.getElementById("myDropdown1").classList.toggle("show1");
}

window.onclick = function(event) {
  if (!event.target.matches('.dropbtn1')) {

    var dropdowns = document.getElementsByClassName("dropdown-content1");
    var i;
    for (i = 0; i < dropdowns.length; i++) {
      var openDropdown = dropdowns[i];
      if (openDropdown.classList.contains('show1')) {
        openDropdown.classList.remove('show1');
      }
    }
  }
}
</script>
    
<script  type="text/javascript">
function myFunctionC() {
    document.getElementById("myDropdown2").classList.toggle("show2");
}

window.onclick = function(event) {
  if (!event.target.matches('.dropbtn2')) {

    var dropdowns = document.getElementsByClassName("dropdown-content2");
    var i;
    for (i = 0; i < dropdowns.length; i++) {
      var openDropdown = dropdowns[i];
      if (openDropdown.classList.contains('show2')) {
        openDropdown.classList.remove('show2');
      }
    }
  }
}
</script>
    
<script type='text/javascript'>
document.onscroll = function () {
var pos = window.pageYOffset;
if (pos > 166)
document.getElementById('nav').style.top = pos + 'px';
else
document.getElementById('nav').style.top = '166px';
}
</script>   

 <script>
$(document).ready(function(){
    $(".dropbtn").click(function(){
        $(".dropdown-content").slideToggle(500);
    });
});
</script>
    
</head>

<body id="home" onload="animation();">


<header class="ud_transition">
<div id="settings">
<ul>


<li><a href="#"><i class="fa fa-cog"></i><button class="dropbtn">Language</button></a><hr>   
<ul id="myDropdown" class="dropdown-content">
<a class="Language" href="#">German</a>
<a class="Language" href="#">English</a>
<a class="Language" href="#">France</a>
<a class="Language" href="#">Russian</a>
<a class="Language" href="#">Greek</a>
<a class="Language" href="#">Italian</a>
<a class="Language" href="#">Spanish</a>
<a class="Language" href="#">Swedish</a>
<a class="Language" href="#">Polish</a>
<a class="Language" href="#">Dutch</a>
<a class="Language" href="#">Czech</a>
<a class="Language" href="#">Portuguese</a>
</ul> 
</li>
<li class="Registration"><a href="Formulartest3.php" class="r"><i class="fa fa-user-plus"></i> Registration</a></li>
  
<?php
if(!isset($_SESSION['username'])) {
    die('Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}

//Abfrage der Nutzer ID vom Login
$username = $_SESSION['username'];

echo "Hallo ".$username;
?>

<div id="probe">
<li class="pfeil" ><a href="#"><i class="fa fa-bars" aria-hidden="true"></i><button onclick="myFunctionC()" class="dropbtn2">Menu</button></a>
<ul id="myDropdown2" class="dropdown-content2">
<?php   
echo '<a href="logout.php">Logout</a>';
?>   
</ul>
</li>
</div>
 
</ul>
</div>
<hr id="str">
<img src="wichtig.jpg" width="508" height="105"/>



<nav id="ud_sub_navi">
<ul>
<div id="o-wrapper" class="o-wrapper"><button id="c-button--slide-left" class="c-button"><img src="okö.gif" width="98" height="30" alt="" /></button></div>
<li class="navhome"><a class="nav" href="loogin.php">Home</li></a>
<li class="navteam"><a class="nav" href="Link_Teamlog.php">Popular</li></a>
<li class="navservice"><a class="nav" href="Link_Servicelog.php">Partner</li></a>
<li class="navkontakt"><a class="nav" href="Link_Contactlog.php">Contact</li></a>
</ul>
</nav>


</header>

<div id="wrapper">



<div id="wrapcontent">

<div id="menu" style="display: none;">



<!-- Alter Code für altes Menü
<ul>
 <div id="block"><li><i class="fa fa-user "></i> My Styles</div>
    <ul>
    <li><a class="link" href="Menu_Link_1log.php"><i class="fa fa-camera-retro" aria-hidden="true"></i> Uploaded</a></li>
    <li><a class="link" href="Menu_Link_2log.php"><i class="fa fa-diamond" aria-hidden="true"></i> Awards</a></li>
    <li><a class="link" href="Menu_Link_3log.php"><i class="fa fa-cogs" aria-hidden="true"></i> Settings</a></li>
    </ul>
</li>
<hr>
<br/>
    <div id="block"><li><i class="fa fa-trophy "></i> Ranking</div>
    <ul>
    <li><a class="link" href="Menu_Link_11log.php"><i class="fa fa-users" aria-hidden="true"></i> All</a></li>
    <li><a class="link" href="Menu_Link_22log.php"><i class="fa fa-star" aria-hidden="true"></i> Top 10</a></li>
    <li><a class="link" href="Menu_Link_33log.php"><i class="fa fa-eye" aria-hidden="true"></i> Popular</a></li>
    </ul>
</li>
<hr>
<br/>
    <div id="block"><li><p><i class="fa fa-globe"></i> All Styles </p></div>
    <ul>
    <li><a class="link" href="Menu_Link_111log.php"><i class="fa fa-leaf" aria-hidden="true"></i> Lifestyle</a></li>
    <li><a class="link" href="Menu_Link_222log.php"><i class="fa fa-sun-o" aria-hidden="true"></i> Mode</a></li>
    <li><a class="link" href="Menu_Link_333log.php"><i class="fa fa-cloud" aria-hidden="true"></i> Sport</a></li>
    <li><a class="link" href="Menu_Link_444log.php"><i class="fa fa-tree" aria-hidden="true"></i> Politik</a></li>
    </ul>
</li>
<hr>
<br/>
</ul>
-->
</div>
</div>
</div>

<div id="c-menu--slide-left" class="c-menu c-menu--slide-left">
  <button class="c-menu__close">&larr; Close Menu</button>
  <ul class="c-menu__items">
 <div id="block"><i class="fa fa-user "></i><p> My Styles</p></div>
    <ul>
    <li class="c-menu__item"><a class="c-menu__link" href="Menu_Link_1log.php"><i class="fa fa-camera-retro" aria-hidden="true"></i> Uploaded</a></li>
    <li class="c-menu__item"><a class="c-menu__link" href="Menu_Link_2log.php"><i class="fa fa-diamond" aria-hidden="true"></i> Awards</a></li>
    <li class="c-menu__item"><a class="c-menu__link" href="Menu_Link_3log.php"><i class="fa fa-cogs" aria-hidden="true"></i> Settings</a></li>
    </ul>
<hr>
    <div id="block"><i class="fa fa-globe"></i><p> Categories</p></div>
    <ul>
    <li class="c-menu__item"><a class="c-menu__link" href="Menu_Link_111log.php"><i class="fa fa-leaf" aria-hidden="true"></i> Lifestyle</a></li>
    <li class="c-menu__item"><a class="c-menu__link" href="Menu_Link_222log.php"><i class="fa fa-shopping-bag" aria-hidden="true"></i> Mode</a></li>
    <li class="c-menu__item"><a class="c-menu__link" href="Menu_Link_333log.php"><i class="fa fa-trophy" aria-hidden="true"></i> Sport</a></li>
    <li class="c-menu__item"><a class="c-menu__link" href="Menu_Link_444log.php"><i class="fa fa-university" aria-hidden="true"></i> Politik</a></li>
    </ul>
<hr>
</ul>
</div><!-- /c-menu slide-left -->

<div id="c-mask" class="c-mask"></div><!-- /c-mask -->


<div id="wrapperfour">

Part 2:
Code:
<div id="Profilline">
<a class="link" href="#">
<div id="Pic">
<?php
$userid = $_SESSION['userid'];

$test = "http://192.168.178.61/PHPversion/upload2/profilbild_user$userid";

if (@getimagesize($test)) {
    echo "<div id='box3'><img class='bild' src='".$test."' alt='Bild' style='width: 50%; min-width: 100px; max-width: 300px; border-radius: 5px; border-style: double; border-color: gray; border-width: 1px; margin-left: 40px; margin-top: 25px; height: 300px; margin-bottom: 25px; box-shadow: 0px 8px 20px 0px gray;'>
    <div id='maske3'><li class='korr1'><a class='link' href='#'>
    <button onclick='myFunctionB()' class='dropbtn1'><p class='exp' style='color: white; border-width: 1px; border-style: double; border-radius: 5px; border-color: white; padding-left: 5px; padding-right: 5px;'>Profilbild hochladen</p></button></a>
    </div>
    <ul id='myDropdown1' class='dropdown-content1' style='margin-top: 315px; margin-left: 65px'>
    <form action='upload.php' method='post' enctype='multipart/form-data'>
    <input type='file' name='datei' style='color: black; cursor: pointer;'><br>
    <input type='submit' value='Hochladen' class='submit'>
    </form>
    </ul>
    </div>
    ";
} else {
    echo "<div id='box2'><img alt='Bitte ein Bild hochladen' style='width: 50%; min-width: 100px; max-width: 300px; border-radius: 5px; border-style: double; border-color: gray; border-width: 1px; margin-left: 40px; margin-top: 25px; height: 300px; margin-bottom: 25px; box-shadow: 0px 8px 20px 0px gray;  '>
    <div id='maske2'><li class='korr'><a class='link' href='#'>
    <form action='upload.php' method='post' enctype='multipart/form-data'>
<input type='file' name='datei' style='color: black; cursor: pointer;'><br>
<input type='submit' value='Hochladen' class='submit'>
</form>
    </a>
    </div>
    </div>";
}
?>   
</div>
</a>
<a><p id="text">Profilline</p></a>
<div id="bloecke" style="margin-top: 125px"><p id="text2">Hobbys</p><p id="text1"><?php echo $username ?></p></div>
<div id="bloecke"><p id="text2"><?php
if(!isset($_SESSION['userjob'])) {
die('Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}
//Abfrage der Nutzer ID vom Login
$userjob = $_SESSION['userjob'];
if($userjob=="") {$userjob = "Job";}
echo $userjob;
?></p><p id="text1"><?php
if(!isset($_SESSION['usergeburtstag'])) {
die('Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}
//Abfrage der Nutzer ID vom Login
$usergeburtstag = $_SESSION['usergeburtstag'];
echo $usergeburtstag; ?>.
    
<?php
if(!isset($_SESSION['usergeburtsmonat'])) {
die('Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}
//Abfrage der Nutzer ID vom Login
$usergeburtsmonat = $_SESSION['usergeburtsmonat'];
echo $usergeburtsmonat; ?>.

<?php
if(!isset($_SESSION['usergeburtsjahr'])) {
die('Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}
//Abfrage der Nutzer ID vom Login
$usergeburtsjahr = $_SESSION['usergeburtsjahr'];
echo $usergeburtsjahr; ?></p></div>
<div id="bloecke"><p id="text2">Motto</p><p id="text1"><?php
if(!isset($_SESSION['userwohnort'])) {
die('Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}
//Abfrage der Nutzer ID vom Login
$userwohnort = $_SESSION['userwohnort'];
if($userwohnort=="") {$userwohnort = "Wohnort";}
echo $userwohnort;
?></p></div>
<p><a class="link1" href="Formulartest4.php" style="font-weight: normal;"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> Profil bearbeiten</a></p>
</div>
<div id="teamtext">
<?php
date_default_timezone_set('Europe/Berlin');
$dirs = array();
$files = array();
    
   $ordner = "upload/";
   $handle = opendir ($ordner);

 
   while ($file = readdir ($handle)) {
      if($file != "." && $file != ".." & $file != ".DS_Store") {
         $compl = $ordner."/".$file;
         if(is_dir($compl)) {
            $dirs [filemtime ($compl)] = "/".$file;
         } else {
            // kompletter Pfad
            $files [filemtime ($compl)] =  "upload/".$file; //Originalcode: "<a href=\"".$compl."\">".$file."</a>";
         }
      }
   }

   krsort ($dirs);
   foreach ($dirs as $key => $dir)
      echo $dir . '  ' . date ("F d Y H:i:s.", $key) . "<br/>"; // kann auch noch für unten genutzt werden nur dann mit $file
    
   krsort ($files);
   foreach ($files as $key => $file)
      echo "<img src='$file' style='width: 50%; min-width: 100px; max-width: 300px; border-radius: 5px;   border-style: double; border-color: gray; border-width: 1px; margin-left: 20px; margin-top: 25px; height: 300px; margin-bottom: 25px; box-shadow: 0px 8px 20px 0px gray; cursor: pointer; margin-right: 20px' >"; //  . '  ' . date ("F d Y H:i:s.", $key) . "<br/>" habe diesen Code rausgenommen
                                                         // da ich ihn eigentlich nicht benötige
   closedir($handle);
?>
</div>
</div>



<div id="footer">
<ul>
<table>
    <tr><th><li class="footer"><a href="#">Newsletter</li></a></th><th><li class="footer"><a href="#">Hilfe</li></a></th><th><li class="footer"><a href="#">Impressum</li></a></th><th><li class="footer"><a href="#">Datenschutz</li></a></th><th><li class="footer"><a href="#">FASHIONATION©</a></li></th></tr>

<tr><th><li class="footer"><a href="#">Registrieren</li></a></th><th><li class="footer"><a href="#">Handy</li></a></th><th><li class="footer"><a href="#">Entwickler</li></a></th><th><li class="footer"><a href="#">Orte</li></a></th><th><li class="footer"><a href="#">Karriere</a></li></th></tr>

<tr><th><li class="footer"><a href="#">Banner</li></a></th><th><li class="footer"><a href="#">Cookies</li></a></th><th><li class="footer"><a href="#">Nutzer</li></a></th><th><li class="footer"><a href="#">Partner</li></a></th><th><li class="footer"><a href="#">Prominente</a></li></th></tr>
<tr></tr>   
</table>
</ul>
<br/>
<hr>
<ul>
 <li> Follow us on <a class="logo" href="https://www.facebook.com"><i class="fa fa-facebook-square fa-2x"></i></a>
                                  <a class="logo1" href="https://www.instagram.com"><i class="fa fa-instagram fa-2x"></i></a>
                                  <a class="logo2" href="https://twitter.com"><i class="fa fa-twitter fa-2x"></i></a>
                                  <a class="logo3" href="https://www.youtube.com"><i class="fa fa-youtube-square fa-2x"></i></a>

</li>
</ul>
</div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script src="mediafurz.js"></script>

<!-- menus script -->
<script src="mediafurz_2.0.js"></script>
<script>
 
  /**
   * Slide left instantiation and action.
   */
  var slideLeft = new Menu({
    wrapper: '#o-wrapper',
    type: 'slide-left',
    menuOpenerClass: '.c-button',
    maskId: '#c-mask'
  });

  var slideLeftBtn = document.querySelector('#c-button--slide-left');
 
  slideLeftBtn.addEventListener('click', function(e) {
    e.preventDefault;
    slideLeft.open();
  });

</script>

</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Beim Upload könntest du den Namen der Datei wie folgt erzeugen:
PHP:
$filename = date("%Y%m%d")  . "_" . $dateiname_beim_upload . "_uid" . $id . $extension;
Dann kannst du die Dateien mit glob und dem Filter "_uid" . $id einlesen und hast dann alle Dateien sortiert nach Datum in einem Array stehen
 
Beim Upload könntest du den Namen der Datei wie folgt erzeugen:
PHP:
$filename = date("%Y%m%d")  . "_" . $dateiname_beim_upload . "_uid" . $id . $extension;
Dann kannst du die Dateien mit glob und dem Filter "_uid" . $id einlesen und hast dann alle Dateien sortiert nach Datum in einem Array stehen
Hey wirklich vielen Dank für den hilfreichen Tipp, werde das ganze direkt mal ausprobieren und mich melden wie es funktioniert hat :)

Beim Upload könntest du den Namen der Datei wie folgt erzeugen:
PHP:
$filename = date("%Y%m%d")  . "_" . $dateiname_beim_upload . "_uid" . $id . $extension;
Dann kannst du die Dateien mit glob und dem Filter "_uid" . $id einlesen und hast dann alle Dateien sortiert nach Datum in einem Array stehen


Hey also ich habe jetzt mal ein paar Dinge ausprobiert und habe dabei folgenden Code geschrieben:
Code:
<?php
$array = array();
foreach(glob('upload/bild_user'.$userid.'{*.jpg,*.jpeg,*.png,*.gif}', GLOB_BRACE) as $image)
    $array[$image] = filemtime($image);
    arsort($array); // neueste Datei nach oben

echo implode('<br>',array_keys($array));
?>

Die Dateien werden alle nach Datum sortiert aufgelistet aber nicht angezeigt da kein img-tag vorhanden ist aber leider habe ich massive Probleme das Problem zu lösen :/

An welcher Stelle muss da ein img-tag ?
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
PHP:
echo implode('<br>',array_keys($array));
Jetzt überlege mal, was du da machst!
 
PHP:
echo implode('<br>',array_keys($array));
Jetzt überlege mal, was du da machst!
Also mit implode verbinde ich die Elemente des Arrays zu einer Zeichenkette, deswegen werden die Bilder untereinander aufgelistet weil ich ein <br> - tag drin habe.

array_keys ist mir nicht zu 100% klar, ich weiß nur das mir das ganze die Schlüssel des Arrays numerisch zurück gibt . $array ist dann die Variable meines Arrays.

ZUGABE

ich habe das hier jetzt mal ausprobiert:
Code:
<?php
$array = array();
foreach(glob('upload/bild_user'.$userid.'{*.jpg,*.jpeg,*.png,*.gif}', GLOB_BRACE) as $image)
    $array[$image] = filemtime($image);
    arsort($array); // neueste Datei nach oben
 
echo implode("<img src='$image' style='width: 50%; min-width: 100px; max-width: 300px; border-radius: 5px;   border-style: double; border-color: gray; border-width: 1px; margin-left: 20px; margin-top: 25px; height: 300px; margin-bottom: 25px; box-shadow: 0px 8px 20px 0px gray; cursor: pointer; margin-right: 20px' >",array_keys($array));
?>

Dabei wird aber immer nur ein und das selbe Bild ausgelesen und nicht alle die sich im Ordner befinden :/
 
Zuletzt bearbeitet von einem Moderator:
Bitte lerne die Grundlagen!

PHP:
foreach ($array as $key => $value)
   echo "<img src='$key' alt=''> $value<br>\n";
 
Werbung:
Bitte lerne die Grundlagen!

PHP:
foreach ($array as $key => $value)
   echo "<img src='$key' alt=''> $value<br>\n";
Hey also es funktioniert schon mal, vielen Dank dafür ! :)
Nun zu den Verständnis Fragen.
foreach $array as $key ist klar aber was passiert bei dem Schritt => $value ?
Lässt du quasi für jeden Bestandteil des Arrays einen Wert ausgeben bzw. speicherst ihn ?

Die echo Zeile ist klar. Und ja ich bin gerade dabei das programmieren zu lernen. Nicht alles ist mir geläufig aber deswegen bin ich sehr interessiert in dem was du gemacht hast :)

Was genau war so falsch an der Zeile mit implode ?

Und nochmal vielen Dank für die Hilfe, dass ganze hat mir schon weitergeholfen und vor allem um das ganze auch zu verstehen :D
 
Werbung:
Zurück
Oben